npm包的發布


假設該待發布包在你本地的項目為 project1

包的本地安裝測試

在發布之前往往希望在本地進行安裝測試。那么需要一個其他的項目來本地安裝待發布項目。

假設該其他項目為project2。假設project2和project1在同一級目錄下。

1. 創建指向待測試包的符號鏈接包

cd project1
npm link

2. 本地安裝

cd project2
npm install '../project1'

這樣就只需要在其他項目中只安裝一次project1,因為安裝的是指向project1的符號鏈接包,其一直指向真實的project1。如果project1被修改,那么project2依賴的project1也是被修改后的。

3.刪除

要先解除對該project1的link:

cd project1
npm unlink

再手動刪除project2下的project1的符號鏈接包。如果不這樣清除,在project1發布后,project2想要安裝npm倉庫中的project1就不能成功。

待弄懂此塊兒link的原理及為什么要這樣才能清除

包的正式發布

1. 完成git提交相關步驟

  cd project1
  git add .
  git commit -m "xxx"

2. 修改version && git 打標簽

 npm version major/minor/patch

package.json會改變version字段值,然后也會自動加一個git的tag,同時也會增加一個commit(加上步驟1的commit,不出意外的話此時本地有2個commits等待push)。假設version 字段自動變為1.3.4。

另外,此處git如果想手動打標簽可以這樣(當只想發布git release卻不想更新npm的時候可以這樣)

git tag -a v1.3.4 -m 'my version 1.3.4'

3. git 發布到遠程

最好是保持npm的版本和git release的版本一致,所以有必要先將git tag發布出來:

git push
git push origin v1.3.4 //此時自動執行ci測試

如果想要一次同時推送branch和tag:

 git push origin master --tags

參見https://www.git-scm.com/docs/git-push

https://stackoverflow.com/questions/17219102/how-to-make-git-push-include-tags-within-a-branch/17219399#17219399

The new "--follow-tags" option tells "git push" to push relevant annotated tags when pushing branches out.
This won't push all the tags, but only the ones accessible from the branch(es) HEAD(s) you are pushing.

4. npm發布

如果是該包第一次發布:

npm whoami //驗證你的憑據已存儲在客戶端
npm publish --access=public //如果是公開包這樣發布,如果不是公開的包則去掉--access=public即可

如果是該包已經發布過,現在只是更新:

npm publish

然后去npmjs.com看一下你的包是否已經發布/更新

3. 安裝已發布的包

cd project2
npm install project1 --save


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM