執行 npm login 時出現 Web login not supported 錯誤的因應措施
· 預估閱讀時間: 2 分鐘
前言
今天在處理把 npm 預設的 registry 改為公司內部的 Nexus Repository 伺服器時,執行到 npm login 這個指令就噴了 Web login not supported
這個錯誤。
上網一查,原來苦主又不只我一個,看起來是因為 Nexus Repository 和 npm 9 之後相容性不同造成的。
因應措施
救助 Google 大神之後,找到兩個解法,不過我目前用第一個方法就成功了。
方法一:手動編輯 .npmrc 檔
以文字編輯器編輯 %UserProfile%\.npmrc
檔:
%UserProfile%\.npmrc
registry=https://{你的私有 Repository 路徑}
always-auth=true
//{你的私有 Repository 路徑}:_auth="{你的帳號:你的密碼 的 base64 編碼字串}"
例如:
%UserProfile%\.npmrc
registry=https://registry.ouch1978.io/repository/npm/
always-auth=true
//registry.ouch1978.io/repository/npm/:_auth="b3VjaDE5Nzg6bXlUZXN0cGFzc3dvcmQ="
方法二:加上 --auth-type=legacy 參數
在原來的指令後面加上 --auth-type=legacy
參數即可,例如:
npm login --registry https://registry.ouch1978.io/repository/npm/ --auth-type=legacy
這個方法比第一個方法來得直覺得多,也方便了許多。
以上。