2012-11-09 42 views

回答

33

根據您的定義「需要」,這可能是兩個非常不同的問題:

  1. [?它是確定發佈自述變化不會撞上的版本號]

  2. [技術上是否可以在不增加版本的情況下發布更改]

接受的答案(通過npm publish --force進行更新,即不增加版本號的任何部分)對於Q2是一個很好的答案。但我想解決Q1。

不鼓勵使用npm publish --force。相反,鼓勵作者使用semantic versioning aka semver,其中規定:

... X.Y.Z(Major.Minor.Patch)的版本格式。錯誤修復不影響API增加修補程序版本,向後兼容 API添加/更改增加次要版本,並向後 不兼容API更改增加主要版本。

所以我的答案是: 雖然在技術上是一種發佈沒有版本凹凸變化,你不應該這樣做。對於不影響包的API的小修改,您應該修補「修補」版本,例如從1.2.0到1.2.1。

+2

好吧,這就是我所想的。我只是爲了自述文件的變化而碰撞未成年人。 – chovy

+1

同意。這絕對是第一季度的正確答案。 – srquinn

+6

現在不推薦使用 –

2

你可以取消發佈:

npm unpublish [@<scope>/]<name>[@<version>] 

,但它是不再可能publish --force,因爲它已被棄用。除此之外,您唯一能做的就是發佈一個新的次要版本。這裏詳細討論:http://blog.npmjs.org/post/77758351673/no-more-npm-publish-f

+1

如果不明確,[unpublish](https://docs.npmjs.com/cli/unpublish)的npm文檔聲明「即使未發佈包版本,該特定名稱和版本組合也不能要重新使用,爲了再次發佈包,必須使用新的版本號。「這基本上意味着取消發佈和重新發布不是在沒有修補程序碰撞的情況下更新文檔的解決方法。 – shennan

1

對於其他誰來到這裏,並認爲他們做對了。是的,你做得對; 5-10分鐘後檢查您的npm頁面。