如何與非 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"
}