将 npm 包记录/推送到 nexus 时出现 400 个错误请求?

Bad*_*adr 6 nexus node.js npm docker

我正在尝试npm为我的 nodejs 项目使用私有注册表,并且我正在使用 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
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用 发布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
Run Code Online (Sandbox Code Playgroud)

这是 npm 文档中的一种官方文档:

在这里,我使用我拥有的凭据登录 repo,如下所示:

?  npm login --registry http://172.17.0.1:8081/repository/npmtest/
Run Code Online (Sandbox Code Playgroud)

并输入我的登录凭据:

Username: admin
Password: 
Email: (this IS public) admin@example.org
Run Code Online (Sandbox Code Playgroud)

但不幸的是,它给了我同样的错误:

npm ERR! code E400
npm ERR! 400 Bad Request - PUT http://localhost:8081/repository/npmtest/-/user/org.couchdb.user:admin
Run Code Online (Sandbox Code Playgroud)

npm Bearer Token Realm正如我在许多讨论中看到的那样,我已经添加到 Nexus 中,但它也没有什么不同。

我尝试使用另一个 repoverdaccio并且它正常工作,这就是为什么我很确定这是一个关系问题。

注意:我使用所有 repo 管理器(Nexus 和 verdaccio)作为 docker 容器,无论如何这应该不是问题。

我正在运行npm版本6.10

这里有什么解决方案可以让 nexus 工作?

小智 4

{
  ...,
  "publishConfig": {
    "registry": "<linkToNexusRepo>"
  }
}
Run Code Online (Sandbox Code Playgroud)

通过在我的package.json.