昨天做好了第二個(gè)npm的包,發(fā)布到npm的時(shí)候報(bào)錯(cuò)了,今天又研究了一上午,終于給搞定了。
原來是npm覺得只靠賬號(hào)和密碼就可以發(fā)包,安全性太差,還需要加一個(gè)驗(yàn)證方式才可以,就是2FA。中文叫做“雙因素驗(yàn)證”。
npm給的使用流程是這樣的:https://docs.npmjs.com/configuring-two-factor-authentication
具體的看那個(gè)網(wǎng)頁吧,簡(jiǎn)單地說,就是找到這個(gè)按鈕,

2FA
然后選擇第二個(gè):

然后需要手機(jī)下載 Authenticator App ,建議在商店下載,打開APP選擇個(gè)人登錄,選擇 QR碼,現(xiàn)在可以掃npm網(wǎng)站上面的那個(gè)二維碼了。
打開APP里面的賬號(hào),可以看到六位數(shù)字,填到npm網(wǎng)站的code里面。

填入數(shù)字
然后npm的賬號(hào)和 Authenticator 就綁定在一起了。
以后再用 npm登錄、發(fā)包的時(shí)候都需要帶上這個(gè)數(shù)字,這個(gè)叫做OTP,一次性密碼,每30秒換一個(gè)新的,注意別超時(shí)。
比如這樣:
npm publish [<tarball>|<folder>][--tag <tag>] --otp=123456
npm owner add <user > --otp=123456
npm owner rm <user> --otp=123456
npm dist-tags add <pkg>@<version> [<tag>] --otp=123456
npm access edit [<package>) --otp=123456
npm unpublish [<@scope>/]<pkg>[@<version>] --otp=123456
發(fā)包
npm publish --otp=123456
123456 表示APP里面的那個(gè)數(shù)字,每次都要使用APP里面最新的。
這個(gè)有點(diǎn)像網(wǎng)銀的優(yōu)盾。也可以理解為短信驗(yàn)證碼。
然后,運(yùn)氣好的話,就可以發(fā)包了。
祝賀大家好運(yùn)。