npm包的發佈

假設該待發布包在你本地的項目爲 project1git

包的本地安裝測試

在發佈以前每每但願在本地進行安裝測試。那麼須要一個其餘的項目來本地安裝待發布項目。npm

假設該其餘項目爲project2。假設project2和project1在同一級目錄下。json

1. 建立指向待測試包的符號連接包

cd project1
npm link

2. 本地安裝

cd project2
npm install '../project1'

這樣就只須要在其餘項目中只安裝一次project1,由於安裝的是指向project1的符號連接包,其一直指向真實的project1。若是project1被修改,那麼project2依賴的project1也是被修改後的。測試

3.刪除

要先解除對該project1的link:code

cd project1
npm unlink

再手動刪除project2下的project1的符號連接包。若是不這樣清除,在project1發佈後,project2想要安裝npm倉庫中的project1就不能成功。ci

待弄懂此塊兒link的原理及爲何要這樣才能清除get

包的正式發佈

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。cmd

另外,此處git若是想手動打標籤能夠這樣(當只想發佈git release卻不想更新npm的時候能夠這樣)it

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

3. git 發佈到遠程

最好是保持npm的版本和git release的版本一致,因此有必要先將git tag發佈出來:io

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
相關文章
相關標籤/搜索