如何在非 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
将如下所示
"dependencies": {
"iotivity-node": "n-api"
}
正如在 “使用 dist-tags” 中所解释的那样,与常规版本不同,标记版本不能通过版本范围(例如
"^2.0.0"
)在package.json
内部进行寻址。 原因是该标签仅指一个版本。 因此,如果软件包维护者选择使用相同的标签标记软件包的更高版本,则npm update
将收到更高版本。 这应该是可接受的版本,而不是最新发布的版本,package.json
依赖项将必须引用确切的版本,如下所示
"dependencies": {
"iotivity-node": "1.2.0-3"
}