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) 新,但如果有人选择简单地运行 npm install iotivity-node 来安装 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”中所述,与常规版本不同,标签版本不能通过 package.json 内的版本范围(例如 "^2.0.0")来寻址。原因是该标签只指向一个版本。因此,如果包维护者选择使用相同的标签标记包的更高版本,npm update 将接收更高版本。这应该是可以接受的版本,而不是最新发布的版本,package.json 依赖项必须引用确切的版本,如下所示:

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