You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行npm login返回E404错误,Artifactory私有npm源登录失败如何解决?

报错原因
  • 核心触发原因是JFrog Artifactory 私有NPM仓库的认证接口规则与NPM客户端默认逻辑不兼容:执行npm adduser命令时,NPM客户端会默认在指定的registry地址后拼接/-/user/org.couchdb.user:<用户名>的CouchDB风格路径发起认证请求,但Artifactory并没有提供该路径的认证接口,因此返回404错误。
  • 报错中提到的「包名不符合URL友好字符规范」属于NPM客户端的误判,它将用户认证接口的404响应识别为包下载请求的报错,该提示无实际参考意义。
对应解决方法

你可以任选以下任意一种方案修复问题:

  • 方案1:添加参数兼容旧版认证逻辑
    执行带--auth-type=legacy参数的登录命令即可,命令示例:

    npm adduser --registry=https://<forge>/artifactory/api/npm/<repo> --auth-type=legacy
    

    该参数会强制NPM使用旧版用户名密码认证逻辑,适配Artifactory的接口规则。

  • 方案2:手动配置.npmrc跳过自动登录流程
    无需执行npm adduser命令,直接手动生成认证信息写入配置即可:

    1. 将你的Artifactory用户名和密码按照<用户名>:<密码>的格式拼接,生成对应的Base64编码字符串
    2. 在用户根目录或项目根目录的.npmrc文件中添加如下配置:
    registry=https://<forge>/artifactory/api/npm/<repo>/
    _auth=<你生成的Base64编码字符串>
    email=<你的公开邮箱地址>
    always-auth=true
    

    配置完成后可直接执行安装、发布等NPM操作。

  • 方案3:使用Artifactory专用认证端点登录
    如果你使用的是旧版本Artifactory,可切换为全局认证端点完成登录,再单独配置仓库地址:

    1. 执行登录命令:npm adduser --registry=https://<forge>/artifactory/api/npm/auth,按提示输入用户名、密码、邮箱完成认证
    2. 再为对应仓库配置registry地址:npm config set registry https://<forge>/artifactory/api/npm/<repo>

内容的提问来源于stack exchange,提问作者Elouan Keryell-Even

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:39:03