說起node,大家都很熟悉了,隨著node一起下載安裝的還有我們的包管理工具npm(node package manager).我們平時也是一直在使用npm的,但大部分時候,我們使用的都是別人的包.假如有一天我們自己寫了一個包,想要上傳到npm上面去,流程是怎麼樣的?
建立一個資料夾並且進入這個資料夾
mkdir publish-test && cd $_
複製程式碼
初始化一個package
我用的是yarn,初始化命令如下:
yarn init
複製程式碼
大家如果用的是npm的話就是:
npm init
複製程式碼
一步步的將配置資訊填入,也可以直接使用下面的命令快速生成
yarn init -y
複製程式碼

編寫包內容
新建一個index.js檔案,隨便寫一句程式碼,比如:
console.log(111)
複製程式碼
準備釋出
npm官方地址 點選官方地址去註冊,並且通過郵箱的驗證,若是不通過驗證的話,後面的釋出流程會提示你去驗證, 註冊好npm賬號以後,我們的釋出流程就正式開始了.第一次釋出的話,我們要使用如下命令:
npm adduser
複製程式碼
以後的話,可以使用
npm login
複製程式碼
在輸入完 npm adduser 之後,就要求輸入使用者名稱/密碼/郵箱,結果輸入完以後出現了一個報錯
409 Conflict - PUT http://registry.npm.taobao.org/-/user/org.couchdb.user:ezlou - [conflict] User ezlou already exists
複製程式碼
這是因為我們目前的npm源是淘寶映象,淘寶映象是不允許我們上傳自己包的,所以我們要切回原先的npm的映象,如何檢視當前的源:
npm config get registry
複製程式碼

npm config set registry https://registry.npmjs.org
複製程式碼
切換完以後,重新登入,出現瞭如下的提示,說明登入成功

釋出
npm publish
複製程式碼
出現如下圖所示:

可能會踩到的坑
如下圖:


npm publish --access=public
複製程式碼
這句話的意思是將我們釋出的包變成一個公開包,讓大家都能訪問到.因為現在我們的包名是 @我們的使用者名稱/包名 這種格式,這種以使用者名稱自己名字開頭的包預設是當作私有包的,而私有包是需要收費的,所以如果這時候我們不加上後面的修飾的話,就會出現如下的報錯:

更新包
如果我們的程式碼有了更新,我們可以重新將包釋出到npm上去,但是注意,包的版本號必須和之前是不一樣的,npm不允許上傳相同版本的包.這裡更新包版本也有兩種方式
- 直接在package.json 中手動修改包的版本
- 通過npm指令來修改
npm version patch //補丁版本,最後一位數加1
npm version minor //增加了新功能 中間的數字加1
npm version major //大改動,不向下相容 第一位數字加1
複製程式碼
我們根據這次包的修改內容,來決定我們這次更新的版本號
刪除包
假如我們要刪除自己釋出的包的話,使用下面的命令
npm unpublish --force
複製程式碼
注意:只有在釋出的24小時內可以刪除包. 基本上,一個包的釋出流程就是以上這些啦!