npm發包的那些事
最近一直在研習關於node的知識,發佈包雖然是最基礎的一點,但由於一些地方的不注意很容易發生錯誤,我整理了我可能出現過的一些發佈包的過程中的一些error,現在分享給大家:
正確的發包步驟:
- 執行npm init,生成package.json。package.json字段多且雜,我們最好讓關鍵的部分交由系統幫我們生成,這樣的話,採用npm init是最正確的辦法。它以問答的形式獲取一些重要的信息,然後生成package.json。
不夠清楚?上圖
- 執行npm adduser,接下來會以問答的形式向你瞭解你的用戶名、密碼以及公開的郵箱。如果沒有執行這些操作,直接上npm publish的話,會報一個錯誤這時關鍵部分來了!
npm ERR! need auth auth and email requiredfor publishing
npm ERR! need auth You need to authorize this machine using npm adduser
錯誤。
- 記得將registry切回最初的源。因爲最初的http://registry.npmjs.org這個...,所以一開始我們可能換成了國內淘寶的鏡像:http://registry.npm.taobao.org。但是淘寶這個鏡像沒有開放上傳的權限,因此會報這樣的錯誤:
npm ERR! publish Failed PUT 403
npm ERR! Error: no_perms Private modeenable, only admin can publish this module: nodebb-plugin-route-cms
有至少兩種方法:命令:npm adduser
1)修改~/.npmrc中的registry字段(命令:vi ~/.npmrc)
2)直接在命令行修改即可。
不夠清楚?繼續上圖!
- 在執行npm publish的時候,因爲要訪問~/.npm這個目錄,不知怎麼回事(權限應該正確的啊),需要以root賬戶權限執行才行。因此這裏要加上sudo。如果不加上sudo的話,會出現這樣的錯誤:
npm ERR! addLocal Could not install .
npm ERR! Error: EACCES, open'/home/jiangcaiyang/.npm/nodebb-plugin-route-cms/0.0.1/package/package.json'
npm ERR! { [Error: EACCES, open'/home/jiangcaiyang/.npm/nodebb-plugin-route-cms/0.0.1/package/package.json']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
npm ERR! path:'/home/jiangcaiyang/.npm/nodebb-plugin-route-cms/0.0.1/package/package.json' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
--tag的意思是標記版本號。這裏按照semver的標準來制定版本(參考這裏)
版本格式:主版號.次版號.修訂號,版號遞增規則如下:
主版號:當你做了不相容的API 修改,
次版號:當你做了向下相容的功能性新增,
修訂號:當你做了向下相容的問題修正。
先行版號及版本編譯資訊可以加到「主版號.次版號.修訂號」的後面,作爲延伸。
最後繼續以一張圖片來結尾,結束我們的這次分享
在大型項目的建設過程中,很多細小的錯誤都會讓我們花費巨大的時間成本去完成,所以如果能夠提前知道防患於未然就顯得尤爲重要了。