如何在发布非 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" 中所述,与常规版本不同,标记版本无法在
package.json
中使用"^2.0.0"
等版本范围进行寻址。原因是标签仅引用一个版本。因此,如果包维护者选择使用相同标签标记包的更高版本,npm update
将接收更高版本。这应该是可以接受的版本,而不是最新发布的版本,package.json
依赖项将必须引用以下所示的精确版本
"dependencies": {
"iotivity-node": "1.2.0-3"
}