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-tags".

Как ввести зависимость от версии пакета Node-API

Чтобы добавить версию iotivity-node Node-API в качестве зависимости, файл package.json будет выглядеть следующим образом:

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

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

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