首先需要去npm官網(wǎng)注冊(cè)一個(gè)賬號(hào)
https://www.npmjs.com/
注冊(cè)好賬號(hào)之后,如果你本地使用的是淘寶的鏡像,則需要將本地的npm源切換成npm自己的地址
查看當(dāng)前鏡像源
npm get registry
切換淘寶鏡像源
npm config set registry http://registry.npm.taobao.org
切換npm源
npm config set registry https://registry.npmjs.org/
切換成npm源后打開(kāi)終端,如果是第一次在本機(jī)發(fā)包,則先添加你的npm賬號(hào)到本地。輸入命令
npm adduser

輸入你的用戶名,回車(chē),然后再輸入密碼

依次輸入用戶名 密碼 郵箱 驗(yàn)證碼,即可登陸成功。
如果不是第一次發(fā)包則直接npm login 登陸就行
接著npm publish 發(fā)布即可
如果有不想發(fā)布出去的文件,就可以將它寫(xiě)入.gitignore 或.npmignore中,上傳就會(huì)被忽略了
發(fā)布好之后就可以在npm上搜到你的包了。
記住每次發(fā)布的包版本號(hào)都需要變更,不然會(huì)導(dǎo)致發(fā)布失敗。
下面總結(jié)我在發(fā)布時(shí)遇到的幾個(gè)發(fā)布失敗的錯(cuò)誤碼,以及解決方法
1、401
401一般就是你的賬號(hào)密碼輸入有誤導(dǎo)致的。自己核對(duì)后重新登陸即可
2、402
這個(gè)問(wèn)題一般是你嘗試發(fā)布到公共范圍導(dǎo)致的問(wèn)題
npm ERR! code E402
npm ERR! 402 Payment Required - PUT https://registry.npmjs.org/.... - You must sign up for private packages
因?yàn)槟J(rèn)訪問(wèn)級(jí)別為私有。要解決此問(wèn)題,可以設(shè)置npm config set access public或添加以下內(nèi)容到package.json
{
// ...
// 添加以下
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org/"
}
// ...
}
3.403
一般出現(xiàn)403就表示你的包名已經(jīng)被別人使用了。解決辦法就是換一個(gè)包名。
但大多數(shù)時(shí)候我建議你將包放在一個(gè)唯一的域下,這樣以后你的包就不會(huì)出現(xiàn)和別人重名的情況,一般這個(gè)域會(huì)以你的npm username為名,前面加上@。
例如 @username/xxx
- 404
出現(xiàn)404的問(wèn)題,就是你的組織未找到,也就是403狀態(tài)碼中解決辦法提到的將包放到一個(gè)私有的域下。這個(gè)名字你當(dāng)然不能胡亂寫(xiě),npm會(huì)去搜索是否有這個(gè)名字,有的話將你本次的包添加到他下面,沒(méi)有就會(huì)給你報(bào)404的錯(cuò)誤了。所以大多數(shù)時(shí)候直接以你的npm 用戶名就行了
以上就是本篇的全部?jī)?nèi)容