Node-RED:Создание нод/Упаковка: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
Нет описания правки
 
(не показаны 3 промежуточные версии 2 участников)
Строка 1: Строка 1:
{{Node-RED/Панель перехода}}
{{Node-RED/Панель перехода}}
{{Перевод от Сubewriter}}
{{Перевод от Сubewriter}}
{{Myagkij-редактор}}
{{Myagkij-редактор}}
{{Черновик}}


=Упаковка<ref>[https://nodered.org/docs/creating-nodes/packaging nodered.org - Packaging]</ref>=
=Упаковка<ref>[https://nodered.org/docs/creating-nodes/packaging nodered.org - Packaging]</ref>=
Строка 14: Строка 11:
Ниже показано то, как обычно устроена структура директории для пакета ноды:
Ниже показано то, как обычно устроена структура директории для пакета ноды:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
- package.json
- package.json
- sample
- sample
Строка 45: Строка 42:
{{Спойлер|'''Примечание:''' Пожалуйста, НЕ ставьте ключевое слово '''«node-red»''', пока не убедитесь, что ваша нода стабильна, корректно работает и оснащена хорошей документацией, чтобы другие пользователи могли ею пользоваться.}}
{{Спойлер|'''Примечание:''' Пожалуйста, НЕ ставьте ключевое слово '''«node-red»''', пока не убедитесь, что ваша нода стабильна, корректно работает и оснащена хорошей документацией, чтобы другие пользователи могли ею пользоваться.}}


<syntaxhighlight lang="javascript" enclose="div">
<syntaxhighlight lang="javascript">
{
{
     "name"        : "node-red-contrib-samplenode",
     "name"        : "node-red-contrib-samplenode",
Строка 88: Строка 85:


<references />
<references />
{{Навигационная таблица/Node-RED библиотеки}}
{{Навигационная таблица/Телепорт}}

Текущая версия от 10:16, 9 сентября 2023

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


Упаковка[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.

См.также

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