如何与非 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 标记该版本确保了,即使用户选择通过简单运行 npm install iotivity-node 来安装 iotivity-node,也不会安装版本 1.2.0-3(尽管它晚于已发布的非 Node-API 版本 1.2.0-2)。这样会默认安装非 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"
}