整理一下在 npmjs.com 上面發布資源包踩過的坑
正常流程就不說了,網上有很多,比如寫程式碼、打包、註冊、登錄、發布等。
郵箱要激活
在 npmjs.com 上面註冊帳號的時候需要填寫郵箱,然後登錄網址的時候並沒有強制要求你去郵箱激活。
但是到了發布資源包的時候,如果還沒有去郵箱激活的話,就會報錯。
具體出錯資訊記不清了,好像有 email 的字樣。反正總之,先到郵箱里看看,找到npmjs.com 發的那封郵件,按照要求操作一下,就可以了。
不能和現有的資源包重名。
npmjs.com 上面的資源包的名稱,按照先下手為強的原則,我先用這個名稱發布了,那麼這個名稱就是我的,別人就不能用。所以想到了好名字,要先去佔個坑。
版本號要更新。
每次發布的時候,版本號都需要升級一下,否則會報錯。
OTP、Modify 2FA
發第一個包的時候,登錄後(驗證帳號和密碼)就可以發布了,但是當我發布第二個包的時候卻報錯了。
折騰了半天終於弄明白了,原理 npmjs.com 感覺只驗證用戶名和密碼不夠安全,怕被盜號,所以又加了一道鎖。
這道鎖類似於銀行的U盾,當然不需要我們弄硬體設備,只需要在手機裡面下載一個APP,然後掃 npmjs.com 裡面的一個二維碼,然後綁定上即可。
之後再做關鍵性操作的時候,就需要打開手機APP,找到六位驗證碼,輸入後即可。比如登錄、發布資源包等操作。
TLS1.2、E426、https
十月初發布資源包,又出現 E426 的錯誤,鬱悶。
npm ERR! code E426
npm ERR! 426 Upgrade Required - PUT //registry.npmjs.org/nf-state
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\jyk00\AppData\Local\npm-cache\_logs\2021-10-08T04_52_56_113Z-debug.log
這次又是一次安全級別的提升,以前要求比較寬泛,現在要求更嚴格了,需要採用TLS1.2 的方式來發布。
然後找資料吧,各種找,一個比一個專業,比如升級 npm 的版本云云。但是還是報E426的錯誤。
最後在一次刷知乎的時候,終於找到了原因,就是修改 registry 的時候要使用 https。之前用的是http。
npm config set registry=//registry.npmjs.org
想一想還是自己的錯,一個是基礎知識不紮實,不知道 TLS 和 https 是啥關係,另外出錯資訊也沒有仔細看,或者說,因為看不懂而忽略了重要資訊。