Как опубликовать пакет 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-тегов".
Как добавить зависимость от версии пакета Node-API
Чтобы добавить версию Node-API iotivity-node
в качестве зависимости, package.json
будет выглядеть следующим образом:
"dependencies": {
"iotivity-node": "n-api"
}
Как объясняется в разделе "Использование dist-тегов", в отличие от обычных версий, версии с тегами не могут быть указаны с помощью диапазонов версий, таких как "^2.0.0"
, внутри package.json
. Причина этого в том, что тег относится к одной конкретной версии. Таким образом, если сопровождающий пакет решит пометить более позднюю версию пакета тем же тегом, npm update
получит более позднюю версию. Если необходима версия отличная от последней опубликованной, зависимость package.json
должна ссылаться на точную версию, как показано ниже:
"dependencies": {
"iotivity-node": "1.2.0-3"
}