發布自己的npm包


相信前端同學對npm install這個命令已經很熟悉了,但是當我們想要將自己的某個插件或者模塊發布到npm上共供別人安裝時該怎么做呢,下面是一些具體的步驟:

發布到npm registry

開發好組件之后,想在其他的項目(或者提供給其他人安裝使用)中通過npm install的方式安裝你的組件,那么你的組件必須發布到npm registry中。

1.npm registry

簡單來說,npm registry就相當於一個包注冊管理中心。它管理着全世界的開發者們發布上來的各種插件,同時開發者們可以通過npm install的方式安裝所需要的插件。
npm官方registry為:http://registry.npmjs.org/
國內速度較快的為:https://registry.npm.taobao.org/

查看本地當前使用的registry
npm config get registry

切換registry
npm config set registry http://registry.npmjs.org/
臨時切換registry
npm publish --registry http://registry.npmjs.org/
注意: 國內目前發布組件時,必須切換為npmjs,否則npm publish也不會成功

2. 登錄

首先去npm官網注冊個賬號

npm login
registry必須使用npmjs才能登錄成功
npm whoami確認是否登錄成功

3 發布組件到npm

npm publish
可以在線查看確認是否發布成功。訪問鏈接(是你發布的npm package名):
https://www.npmjs.com/package/
看看是否已經有內容了,有內容說明發布成功了。

4 更新組件並發布

git commit
// 保證是npmjs,不能使用國內鏡像
npm version <update_type>
npm publish
push tag
push branch

 

npm publish命令是用來自動更新版本號,update_type取值有patch minor major,分別有以下場景
update_type 場景 版本號規則 舉例

  • 首次發布 版本號1.0.0 1.0.0
    patch 修復bug、微小改動時 從版本號第3位開始增量變動 1.0.0 -> 1.0.1
    minor 上線新功能,並且對當前版本已有功能模塊不影響時 從版本號第2位開始增量變動 1.0.3 -> 1.1.3
    major 上線多個新功能模塊,並且對當前版本已有功能會有影響時 從版本號第1位開始增量變動 1.0.3 -> 2.0.0

如果首次發布版本號不是1.0.0的話,那么用$ npm version <update_type>
來更新會報錯,因為你沒有按照它約定的版本規則來,這個時候,你可以手動修改package.json中的version字段為符合約定規則的版本號,然后直接執行$ npm publish就可以,然后下次再增量更新的時候,就可以直接使用npm version <update_type>的方式來自動更新版本號了

TAG

首次發版執行npm publish后需要自己手動打tag
每次使用npm version命令更新版本后,會在本地新建一個當前版本的tag,每次npm publish后需要將tag推到github

// 新建tag
git tag <版本號> -m "<備注信息>"
// 刪除tag
git tag -d <版本號>
// 打印所有標簽
git tag`
// 推送本地tag到遠端
git push origin v1.0.1
"clean": "watchman watch-del-all && npm start -- --reset-cache",

 

其他命令

npm search react-native-zyhdev-testlibray 查詢組件庫信息
npm search --keywords testlibrary 根據關鍵字查詢組件庫

刪除組件

//刪除要用force強制刪除。超過24小時就不能刪除了。自己把握好時間。另外刪除組件后24小時內不能再publish
npm --force unpublish packageName

 

參考:
https://www.jianshu.com/p/e40f24e28b94
https://www.jianshu.com/p/091a68ea1ca7
https://github.com/frostney/react-native-create-library
https://www.jianshu.com/p/628c8cc17fa0


免責聲明!

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



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