Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 400记录/将npm包推送到nexus时请求错误?_Node.js_Docker_Npm_Nexus - Fatal编程技术网

Node.js 400记录/将npm包推送到nexus时请求错误?

Node.js 400记录/将npm包推送到nexus时请求错误?,node.js,docker,npm,nexus,Node.js,Docker,Npm,Nexus,我正试图为我的nodejs项目使用一个私有的npm注册表,为此我正在使用nexus。我保留了admin用户以供使用,至少用于测试和保证没有权限问题。但是,我不能接受地使用npm login--registry和npm publish--registry登录publish。我使用了几种方法,首先在.npmrc文件中手动添加条目,如下所示: ➜ npm login --registry http://172.17.0.1:8081/repository/npmtest/ Nexus 3文档中提到

我正试图为我的nodejs项目使用一个私有的
npm
注册表,为此我正在使用nexus。我保留了
admin
用户以供使用,至少用于测试和保证没有权限问题。但是,我不能接受地使用
npm login--registry
npm publish--registry登录publish。我使用了几种方法,首先在
.npmrc
文件中手动添加条目,如下所示:

➜  npm login --registry http://172.17.0.1:8081/repository/npmtest/
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文档中的官方版本:

➜  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 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承载令牌领域
,正如我在许多讨论中看到的那样,它也没有带来什么不同

我曾尝试使用另一种回购协议verdaccio,但它工作正常,这就是为什么我非常确定这是一个nexus问题

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

我正在运行
npm
version
6.10

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

{
...,
“publishConfig”:{
“注册表”:”
}

}
您应该在命令中明确选择本地注册表,或者执行如下一次性配置:

npm config set registry http://localhost:port
不使用上述命令的显式注册表示例:

npm adduser --registry http://localhost:port

确保为存储库选择了正确的格式和类型。在我的例子中,我意外地用不正确的格式创建了npm存储库

我创建了一个
格式:nuget
而不是
格式:npm


在Nexus仪表板中选择存储库时,可以看到格式。

您正在运行哪个版本的
npm
?包版本是否已经部署并且现在阻止您重新发布?@jcragun
6.10
是npm版本。回购协议中没有任何内容。