Node-RED:Создание нод/Упаковка
Упаковка[1]
Ноды можно упаковывать в модули и публиковать в репозитории npm. Это упрощает их установку, т.к. они устанавливаются вместе со всеми необходимыми им зависимостями.
Структура директории
Ниже показано то, как обычно устроена структура директории для пакета ноды:
- package.json
- sample
|-sample.html
|-sample.js
\-icons
\-sample.png
- README.md
- LICENSE
Впрочем, жестких ограничений к структуре директории, используемой для упаковки нод, нет. Если в пакете содержится несколько нод, они могут и находиться разом в одной директории, и каждая в собственной поддиректории.
Локальное тестирование модуля
Чтобы локально протестировать модуль, можно воспользоваться командой «npm link». Это позволит работать над нодой в локальной директории и создать символьную ссылку между нею и локальной версией Node-RED, как если бы нода была установлена с помощью npm.
- Будучи в директории, где находится файл «package.json» ноды, впишите «sudo npm link»
- В будучи в пользовательской директории Node-RED (как правило, это «~/.node-red»), впишите «npm link <название_модуля>»
Это создаст необходимые символьные ссылки между двумя директориями, чтобы Node-RED при запуске мог найти ноду, над которой вы работаете. Чтобы задействовать изменения, внесенные в ноду, просто перезапустите Node-RED.
Файл «package.json»
Помимо обычных свойств, файл «package.json» также должен содержать вложенный JSON-объект «node-red» с информацией о том, какие ноды содержатся в этом модуле, а также указатель к их файлам «*.js».
Если у какой-либо из этих нод есть зависимости к другим npm-модулям, их нужно указать в свойстве «dependencies».
Чтобы ноды можно было найти репозитории npm, в свойстве «keywords» должно находиться значение «node-red». Это значит, что разрабатываемый вами пакет появится в поисковой выдаче при поиске по заданному ключевому слову.
Примечание: Пожалуйста, НЕ ставьте ключевое слово «node-red», пока не убедитесь, что ваша нода стабильна, корректно работает и оснащена хорошей документацией, чтобы другие пользователи могли ею пользоваться. |
{
"name" : "node-red-contrib-samplenode",
"version" : "0.0.1",
"description" : "A sample node for node-red",
"dependencies": {
},
"keywords": [ "node-red" ],
"node-red" : {
"nodes": {
"sample": "sample/sample.js"
}
}
}
Как правильно называть ноды
В названии модулей всегда должен стоять префикс «node-red-contrib-», чтобы было понятно, что эти ноды не идут в комплекте с Node-RED. Альтернативный вариант – в названии ноды можно просто не указывать префикс «node-red».
Файл «README.md»
Файл «README.md» должен описывать возможности ноды, а также список всех условий, необходимых для ее работы. Сюда также можно добавить дополнительную справочную информацию, которая не была добавлена в HTML-файл для текста-справки, показываемой во вкладке «Info», или даже небольшой поток-пример, демонстрирующий работу этой ноды.
Текст в этом файле нужно оформить с помощью разметки Markdown, используемой в GitHub.
Лицензия
Не забудьте добавить файл с информацией о лицензии, чтобы другие знали, что можно и нельзя делать с вашим кодом.
Публикация в npm
Есть много руководств о публикации пакетов в репозиторий npm. Базовое руководство можно найти тут.
Добавление в «flows.nodered.org»
Если ваш модуль отвечает всем необходимым требованиям, библиотека потоков Node-RED автоматически проиндексирует его в течение пары часов. Если спустя это время индексации так и не произойдет, вы можете спросить совета на форуме Node-RED или в Slack.
См.также
Внешние ссылки