?最近在整理代碼,上傳到npm方便使用,所以學習了如何在npm發布一個包,整理寫成一篇文章和大家一起交流。
1、注冊npm賬號
npm | Home
2、確保是登錄狀態
(在包目錄下,終端執行 npm login)
?按enter鍵自動打開頁面,進行登錄驗證。
(上傳包之前確保使用的是官方的鏡像源)
??這里使用 nrm工具(一個用于快速切換 NPM 鏡像源的工具。)
npm i nrm -g
?常用指令
- nrm ls
//查看鏡像源
- nrm use xx
// 使用鏡像源
//如 nrm use npm??
- nrm test xx
//測試鏡像源響應時間
//測試單一鏡像源 比如 nrm test taobao
- nrm test
//測試全部鏡像源
(下面兩個用得比較少)
- nrm add 鏡像名稱?鏡像地址
//添加自定義鏡像源
// 比如?nrm add myregistry https://my.custom.registry.com
- nrm del myregistry
//刪除鏡像源
3、從0-1上傳一個包
3.1、初始化項目
3.2、包書寫位置
(一般寫在index.js文件,看package.json中的main)
書寫并暴露,比如
function add(a,b){return a+b
}
?
module.exports={add
}
3.3、上傳包
?準備工作
重要事情說三遍
確保現在用的是官方的鏡像源!!!
確保現在用的是官方的鏡像源!!!
確保現在用的是官方的鏡像源!!!
nrm ls
比如現在用的是淘寶的鏡像源,那么就要切換成官方的鏡像源
npm use npm
?切換并查看
?正式上傳
npm publish
?(確保是npm是登錄成功狀態+使用的是官方的鏡像源)
?上傳成功!
?
4、更新包
(確保代碼可用。需要在package.json中修改版本號)
npm publish
4.1、新增/修改代碼?
?
4.2、修改版本號
(package.json中的版本號從1.0.0變成1.0.1)
4.3、更新
npm publish
?在npm上查看修改結果。
5、刪除包
? npm unpublish xx --force
//xx 即是包的名字
需滿足一定的條件(https://docs.npmjs.com/policies/unpublish 官網文檔)
以下是整理得出,僅供參考。
1. 時間限制
- npm 僅允許在包發布后的 72 小時內刪除包。這是為了防止包的突然消失給依賴該包的開發者帶來不便和潛在的問題。例如,很多項目可能在短時間內就依賴并使用了新發布的包,如果隨意刪除,可能會導致這些項目無法正常運行。
2. 下載量限制
- 如果包在過去的 24 小時內有下載記錄,那么該包不能被刪除。這同樣是為了保護依賴該包的用戶,避免他們因為包的刪除而受到影響。
3. 范圍包限制
- 對于范圍包(Scoped packages),在被下載后就無法刪除,只能取消發布(unpublish)。范圍包是指名稱以
@scope/
開頭的包,比如@example/package
。
?