Node-RED:Создание нод/Упаковка

Материал из Онлайн справочника
Версия от 10:16, 9 сентября 2023; Myagkij (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Упаковка[1]

Ноды можно упаковывать в модули и публиковать в репозитории npm. Это упрощает их установку, т.к. они устанавливаются вместе со всеми необходимыми им зависимостями.

Структура директории

Ниже показано то, как обычно устроена структура директории для пакета ноды:

- package.json
- sample
   |-sample.html
   |-sample.js
   \-icons
      \-sample.png
- README.md
- LICENSE

Впрочем, жестких ограничений к структуре директории, используемой для упаковки нод, нет. Если в пакете содержится несколько нод, они могут и находиться разом в одной директории, и каждая в собственной поддиректории.

Локальное тестирование модуля

Чтобы локально протестировать модуль, можно воспользоваться командой «npm link». Это позволит работать над нодой в локальной директории и создать символьную ссылку между нею и локальной версией Node-RED, как если бы нода была установлена с помощью npm.

  1. Будучи в директории, где находится файл «package.json» ноды, впишите «sudo npm link»
  2. В будучи в пользовательской директории 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.

См.также

Внешние ссылки