Skip to content

Как опубликовать пакет 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 будет выглядеть следующим образом:

json
"dependencies": {
  "iotivity-node": "n-api"
}

Как объясняется в разделе "Использование dist-тегов", в отличие от обычных версий, версии с тегами не могут быть указаны с помощью диапазонов версий, таких как "^2.0.0", внутри package.json. Причина этого в том, что тег относится к одной конкретной версии. Таким образом, если сопровождающий пакет решит пометить более позднюю версию пакета тем же тегом, npm update получит более позднюю версию. Если необходима версия отличная от последней опубликованной, зависимость package.json должна ссылаться на точную версию, как показано ниже:

json
"dependencies": {
  "iotivity-node": "1.2.0-3"
}