我正在运行Nexus 3.0.1-01,并使用它来托管Maven存储库和NPM注册表.对于NPM,我有一个本地镜像npmjs.org,一个本地NPM注册表和一个结合这两个...
我一直在内部使用npm,我可以使用npm-public组作为我的注册表,这一直很好.所以,我可以使用Nexus镜像npmjs.
下一步是使用本地编写的npm模块并将它们发布到npm-releases(在我的Nexus实例上),以便这些模块可以在这里的交付团队之间共享.我已经能够构建一个包,npm包似乎表现得很好.
我已经运行了npm adduser来为我的npm环境提供我的Nexus凭据.我使用的是当我登录Nexus网络应用程序时使用的用户名/密码,我的用户被分配了管理员角色(所以我应该拥有所有权限).我可以在.npmrc文件中看到凭据
我的注册表值仍然是组合镜像和本地注册表的npm-public 组.我已经确保我试图部署的模块的package.json有一个"publishConfig"部分,它指向本地注册表的url(不是公共组)
但是,尽管如此,调用"npm publish"会导致401错误...
查看npm-debug.log,我可以看到它正在尝试调用HTTP PUT调用将已组装的tgz文件推送到注册表,这会返回401错误
我已经在服务器中的shiro包上启用了调试日志记录,但我只看到一条消息认为它需要身份验证
2016-09-13 08:56:28,590+1000 DEBUG [qtp1257823896-4030] *UNKNOWN org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter - Authentication required: sending 401 Authentication challenge response.
Run Code Online (Sandbox Code Playgroud)
根据文档,我已经完成了我应该做的所有事情(npm添加用户)但是我无法将npm模块成功部署到我的本地存储库.
调用npm发布时我还需要使用其他选项吗?我需要对我的服务器中的托管npm存储库进行其他设置,以便我可以发布到它吗?我几乎使用默认值创建它.我是否错过了阻止我部署到托管的npm注册表的步骤?
任何帮助将不胜感激,因为我现在卡住了.
EdH*_*EdH 95
事实证明,我的活跃领域列表中没有Npm Bearer Token Realm.一旦我将其移动到Active,发布成功完成!
小智 10
另外,对于@ EdH的回答,我们发现.npmrc的格式已经改变,因此base64编码的_auth将不再起作用......并且必须通过登录repo来创建令牌.
旧的.npmrc
registry=https://host/repo
_auth=12afdjsljl123213
Run Code Online (Sandbox Code Playgroud)
新的.npmrc
//host/repo/:_authtoken=uuidOfToken
Run Code Online (Sandbox Code Playgroud)
除了@Daniel的答案外,我发现在添加用户凭据/登录npm时,注册表URL上不能带有斜线。
坏:
npm adduser --registry=https://repo.localhost/repository/npm-internal/
Run Code Online (Sandbox Code Playgroud)
好:
npm adduser --registry=https://repo/repository/npm-internal
Run Code Online (Sandbox Code Playgroud)
另外,如果您希望自动化登录(即非交互式),则使用了一个名为npm-cli-login的好工具。
npm-cli-login -u admin -p admin123 -e nick@foo.bar -r https://repo/repository/npm-internal
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22551 次 |
| 最近记录: |