Mih*_*sek 29 nexus node.js npm
发布到托管在我的私有 Nexus 上的私有 npm 注册表时,我遇到了身份验证问题。
我的 Nexus 设置是我有npm-proxy、npm-registry(托管 npm with allowRepublish=false
)、npm-snapshots(托管 npm with allowRepublish=true
)和npm-public(与所有其他三个存储库分组)。
由于我正在开发一个库,我使用的是我的快照存储库,所以我可以不断地重新部署相同的版本(类似于 Maven 世界中的快照)。
在我的库项目中,我在package.json 中设置了这个选项
"publishConfig": {
"registry": "https://my.nexus.com/repository/npm-snapshots/"
}
Run Code Online (Sandbox Code Playgroud)
接下来,我创建了包含以下内容的.npmrc文件:
registry=https://my.nexus.com/repository/npm-public/
_auth=RVhBTVBMRQ==
Run Code Online (Sandbox Code Playgroud)
有了这个设置,我可以毫无问题地发布项目。但是,让我烦恼的是,我的密码(只是 base64 编码)存储在文件中,应该提交,但由于其中的凭据,我无法提交。
我试图改为登录 npm 注册表并从 .npmrc 中删除了 auth 行
npm adduser --registry=https://my.nexus.com/repository/npm-snapshots --always-auth
我得到了回应 Logged in as myusername on https://my.nexus.com/repository/npm-snapshots.
但是,当我尝试运行时,npm publish
我得到:
npm ERR! code E401
npm ERR! Unable to authenticate, need: BASIC realm="Sonatype Nexus Repository Manager"
npm verb exit [ 1, true ]
npm timing npm Completed in 6867ms
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\XXXX\AppData\Roaming\npm-cache\_logs\2019-07-30T19_31_01_598Z-debug.log
Run Code Online (Sandbox Code Playgroud)
现在在我的另一个项目(使用这个库)中,我简单地创建了 .npmrc 文件,其中包含内容registry=https://nexus.mjamsek.com/repository/npm-public/
和运行命令,npm adduser --registry=https://my.nexus.com/repository/npm-public --always-auth
并且能够下载已发布的包。
但是,发布仍然不起作用,我不知道为什么。
编辑 31.7.2019:在我的活动领域列表中,我也有npm Bearer Token Realm
Daw*_*awa 34
当你npm login
还是npm adduser
故宫客户端创建令牌认证今后将请求发送到注册表中。默认的 NXRM 配置只允许不识别 NPM 令牌的本地身份验证领域。请确保您已启用npm Bearer Token Realm。
rse*_*don 24
您需要在传递给 的注册表 URL 的末尾添加一个斜杠npm adduser
,否则npm
会截断 URL 的最后一段,并且将无法工作。
归档时间: |
|
查看次数: |
59736 次 |
最近记录: |