【发布时间】:2019-12-20 21:17:53
【问题描述】:
我正在尝试为我的 nodejs 项目使用私有 npm 注册表,并且为此我正在使用 nexus。我保留了admin 用户以供使用,至少用于测试并保证没有权限问题。但是,我不能接受地使用npm login --registry <private-registry-address> 和npm publish --registry <private-registry-address> 登录。我使用了几种方法,首先我在.npmrc文件中手动添加条目如下:
Nexus 3 文档中提到了这一点:
➜ echo "email=$NPM_EMAIL" > $HOME/.npmrc
➜ echo "_auth=$(echo -n "$NPM_USER:$NPM_PASS" | openssl base64)" >> $HOME/.npmrc
➜ echo "always-auth=true" >> $HOME/.npmrc
然后我尝试使用npm publish --registry http://172.17.0.1:8081/repository/npmtest/ 发布,但它只是给了我:
npm ERR! code E400
npm ERR! 400 Bad Request - PUT http://172.17.0.1:8081/repository/npmtest/mypackage
这是 npm docs 中的官方:
在这里,我使用以下凭据登录 repo:
➜ npm login --registry http://172.17.0.1:8081/repository/npmtest/
并输入我的登录凭据:
Username: admin
Password:
Email: (this IS public) admin@example.org
但不幸的是,它给了我同样的错误:
npm ERR! code E400
npm ERR! 400 Bad Request - PUT http://localhost:8081/repository/npmtest/-/user/org.couchdb.user:admin
我在 Nexus 中添加了npm Bearer Token Realm,正如我在许多讨论中看到的那样,它也没有任何作用。
我尝试使用另一个 repo verdaccio 并且它工作正常,这就是为什么我很确定这是一个关系问题。
注意:我正在使用所有 repo 管理器(Nexus 和 verdaccio)作为 docker 容器,无论如何这应该不是问题。
我正在运行npm 版本6.10
这里有什么解决方案可以让 nexus 工作?
【问题讨论】:
-
您运行的是哪个版本的
npm?包版本是否已经部署,现在阻止您重新发布? -
@jcragun
6.10是 npm 版本。回购中没有任何内容。