如何在非 Node-API 版本旁發佈 Node-API 版本的套件

以下步驟以套件 iotivity-node 為例

  • 首先,發佈非 Node-API 版本:
    • 更新 package.json 中的版本。對於 iotivity-node,版本變為 1.2.0-2
    • 執行發佈檢查清單(確保測試/示範/文件正常)
    • npm 發佈
  • 然後,發布 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 版本。有關使用標籤的更多信息,請查看 "使用 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"
}