npm publish将斜杠编码为%2f致400错误,求无Artifact权限下的解决办法
解决Artifactory npm Publish 400错误(斜杠被编码为%2f)
以下是几个无需修改Artifactory服务端的可行方案:
替换npm Registry为仓库直接URL
你当前使用的是Artifactory的npm API端点(/api/npm/npm-enterprise),这个路径在publish时会触发不必要的斜杠编码。改成仓库的直接访问URL即可:
在项目根目录创建/修改.npmrc文件,添加:registry=https://artifactrepository.company.net/artifactory/npm-enterprise/之后执行
npm publish,此时npm会直接向仓库路径发送请求,斜杠不会被编码为%2f。临时指定publish的registry
如果不想修改全局或项目配置,直接在publish命令里指定正确的仓库URL:npm publish --registry=https://artifactrepository.company.net/artifactory/npm-enterprise/使用JFrog CLI替代npm publish
JFrog官方CLI工具对Artifactory的路径处理做了适配,能避免编码问题:- 全局安装CLI:
npm install -g jfrog-cli - 配置Artifactory连接(按提示输入仓库地址、账号密码):
jfrog rt config - 在包目录执行发布:
jfrog rt npmpublish @orgName/packageName --repo npm-enterprise
- 全局安装CLI:
检查package.json的name字段
确认package.json里的name字段严格是@orgName/packageName,没有多余的转义字符或拼写错误,这是避免路径异常的基础前提。
内容的提问来源于stack exchange,提问作者user13904118
相关产品推荐
相关产品推荐

