Как опубликовать пакет Node-API
Как опубликовать версию пакета Node-API наряду с версией, не относящейся к Node-API
Следующие шаги проиллюстрированы на примере пакета iotivity-node
:
Сначала опубликуйте версию, не относящуюся к Node-API:
- Обновите версию в
package.json
. Дляiotivity-node
версия становится 1.2.0-2. - Пройдите контрольный список выпуска (убедитесь, что тесты/демонстрации/документация в порядке).
npm publish
.
- Обновите версию в
Затем опубликуйте версию Node-API:
- Обновите версию в
package.json
. В случаеiotivity-node
версия становится 1.2.0-3. Для управления версиями мы рекомендуем следовать схеме предварительного выпуска версий, описанной на semver.org, например, 1.2.0-napi. - Пройдите контрольный список выпуска (убедитесь, что тесты/демонстрации/документация в порядке).
npm publish --tag n-api
.
- Обновите версию в
В этом примере присвоение выпуску тега n-api
гарантирует, что, хотя версия 1.2.0-3 является более поздней, чем опубликованная версия, не относящаяся к Node-API (1.2.0-2), она не будет установлена, если кто-то решит установить iotivity-node
, просто запустив npm install iotivity-node
. По умолчанию будет установлена версия, не относящаяся к Node-API. Пользователю придется запустить npm install iotivity-node@n-api
, чтобы получить версию Node-API. Дополнительную информацию об использовании тегов с npm можно найти в разделе "Использование dist-tags".
Как ввести зависимость от версии пакета Node-API
Чтобы добавить версию iotivity-node
Node-API в качестве зависимости, файл package.json
будет выглядеть следующим образом:
"dependencies": {
"iotivity-node": "n-api"
}
Как объясняется в разделе "Использование dist-tags", в отличие от обычных версий, версии с тегами не могут быть адресованы диапазонами версий, такими как "^2.0.0"
внутри package.json
. Причина этого в том, что тег относится ровно к одной версии. Таким образом, если сопровождающий пакета решит пометить более позднюю версию пакета тем же тегом, npm update
получит более позднюю версию. Это должно быть приемлемой версией, отличной от последней опубликованной, зависимость package.json
должна ссылаться на точную версию, как показано ниже:
"dependencies": {
"iotivity-node": "1.2.0-3"
}