2017-06-15 56 views
6

有一個非常方便的npm version命令。除了參數如major,minorpatch它接受的參數如prerelease,prepatch
它在文檔中說,該命令按照semver.inc函數工作。是否有npm版本的預發佈標識符?

這些pre命令我有一個問題。

說我目前的版本v1.0.0
如果我運行npm version prerelease它會將版本升級到v1.0.1-0

根據https://github.com/npm/node-semver#prerelease-identifiers是否可以爲預發佈標識符提供額外的補充?

我希望像npm version prerelease alpha這樣的版本能夠碰撞到v1.0.1-alpha.0,但這不起作用。

+0

您是否找到解決方案? –

+1

不幸的是,還沒有。 – timetowonder

+0

我也在尋找類似的東西。現在我只寫出整個版本,比如'npm version 1.0.1-alpha.0',這比編輯package.json和手動標記提交更簡單。 –

回答

1

我最近一直在看這個,看看有沒有關於此事的更新......但似乎事情仍然是一樣的。

不,npm version命令不支持npm版本的預發佈標識符。您可以通過團隊看到這裏的推理: https://github.com/npm/npm/pull/12936#issuecomment-248153743

semver(https://www.npmjs.com/package/semver)不支持你正在嘗試做的,所以你可以做的是隻用這樣的命令來獲得版本:

semver <current version> -i prerelease --preid <prelease identifier> 

例如:

semver 1.0.1 -i prerelease --preid alpha 

會產生:

1.0.2-alpha.0 

有了這個結果,你可以將它傳遞給NPM版本(例如說,在CI構建),像這樣:

npm version <resulting version from semver command> 

另一種方法是使用語義釋放(一個獨立的項目): https://github.com/semantic-release/semantic-release

這將根據提交消息自動進行語義版本化,但我認爲它只適用於github回購託管模塊,不確定。