簡體   English   中英

發布NPM包的開發版本

[英]Publish development version of NPM package

如何發布NPM包的開發版本?

我試圖在package.jsonversion字段設置"dev"值,但是在發布它時出錯了:

$ npm publish
npm ERR! Error: Invalid version: "dev"
npm ERR!     at Object.module.exports.fixVersionField (/usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/lib/fixer.js:180:13)
npm ERR!     at /usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/lib/normalize.js:29:38
npm ERR!     at Array.forEach (native)
npm ERR!     at normalize (/usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/lib/normalize.js:28:15)
npm ERR!     at final (/usr/lib/node_modules/npm/node_modules/read-package-json/read-json.js:310:33)
npm ERR!     at then (/usr/lib/node_modules/npm/node_modules/read-package-json/read-json.js:124:33)
npm ERR!     at /usr/lib/node_modules/npm/node_modules/read-package-json/read-json.js:299:40
npm ERR!     at fs.js:266:14
npm ERR!     at /usr/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:103:5
npm ERR!     at Object.oncomplete (fs.js:107:15)
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR!     <http://github.com/isaacs/npm/issues>

npm ERR! System Linux 3.11.0-15-generic
npm ERR! command "node" "/usr/bin/npm" "publish"
npm ERR! cwd /home/ionicabizau/package-name
npm ERR! node -v v0.10.24
npm ERR! npm -v 1.3.23
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/ionicabizau/package-name/npm-debug.log
npm ERR! not ok code 0

哪個是最接近的替代品?

您可以將預發布標記上傳到npm 這些標簽不會與正常的semver范圍語義匹配,但允許您使用和上傳開發版本。 一個例子是1.3.5-alpha.3 如果你上傳的東西還沒有版本,那么合理使用就像0.0.1-alpha.1

NPM包版本必須符合semver的要求

正常的版本號必須采用XYZ格式,其中X,Y和Z是非負整數,並且不得包含前導零。 X是主要版本,Y是次要版本,Z是補丁版本。 每個元素必須在數值上增加。 例如:1.9.0 - > 1.10.0 - > 1.11.0。

因此不允許使用dev作為版本號。

此外,不建議發布任何處於開發狀態的代碼。 如果要在不同模塊中測試模塊,可以使用相對路徑或使用git遠程URL包含該模塊。

例:

假設你正在開發的模塊叫做foo ,你想在模塊bar ,腳本文件bar/index.js測試它。 假設兩個模塊目錄都在同一個父目錄中。 而不是將未完成的模塊foo發布到npm並將其安裝在模塊bar ,您可以執行以下操作:

var foo = require('../foo')

正如IonicãBizãu (下面的評論)所建議的那樣 ,你也可以使用帶有git遠程URL的npm install

npm install <git remote url>

NPM安裝文檔提供了有關該安裝方法的更多詳細信息(選項g)。

或者,您可以使用本文中提出的方法: 本地測試您的npm模塊,而不將它們發布到npmjs.org

編輯

還有另一種需要npm link 命令的替代解決方案:

  • 在開發模塊中執行npm link命令。 這將創建從prefix/package-name到當前文件夾的全局安裝的符號鏈接
  • 另一個步驟是在某個其他位置(用於測試已開發模塊的其他模塊/應用程序)執行npm link package-name (其中package-name是您開發的軟件包的名稱)。 這將創建一個從本地node_modules文件夾到全局符號鏈接(在第一步中創建)的符號鏈接。

請注意,在某些操作系統中,您可能需要以特權用戶身份運行第一個命令(通常是sudo幫助)。

使用符號鏈接,您可以添加對已開發模塊的更改,並立即在其他鏈接模塊中查看其結果。

我希望這會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM