Javascript NPM注册表安装在非注册表依赖项上失败
我正试图通过注册表安装我的Ionic应用程序,并附带它的依赖项。 我试图通过Javascript NPM注册表安装在非注册表依赖项上失败,javascript,angular,ionic-framework,npm,nexus,Javascript,Angular,Ionic Framework,Npm,Nexus,我正试图通过注册表安装我的Ionic应用程序,并附带它的依赖项。 我试图通过npm I--loglevelverbose实现这一点,而我的~/.npmrc如下所示: //nexus.OMMITED.com/repository/:_auth=OMMITED registry=http://nexus.OMMITED.com/repository/npm-all always-auth=true //nexus.OMITTED.com/repository/:_authToken=OMITTED
npm I--loglevelverbose
实现这一点,而我的~/.npmrc
如下所示:
//nexus.OMMITED.com/repository/:_auth=OMMITED
registry=http://nexus.OMMITED.com/repository/npm-all
always-auth=true
//nexus.OMITTED.com/repository/:_authToken=OMITTED
registry=http://nexus.OMITTED.com/repository/npm-all/
_auth=OMITTED
email=bob@OMITTED.nl
当看到命令运行时,它似乎运行得很好,直到我们遇到其他非注册表依赖项时,我突然遇到一个授权错误
下面是命令的粘贴:
如您所见,它在@angular上失败/http@6.1.2
在本例中,但此变量介于随机@angular
依赖项或@ionic native
到目前为止我所尝试的…
始终验证
更改为真
或假
\u authToken
而不是\u auth
npm登录--注册表=http://nexus.OMMITED.com/repository/npm-all
同时使用--auth=TOKEN\u省略
和--authToken=TOKEN\u省略
,其中npm告诉我npm警告无效配置auth type=“TOKEN\u省略”
,并提示输入用户名,但是,我的用户名是一个引发此错误的电子邮件地址:npm WARN Name可能不包含非url安全字符
,只会无限期地提示输入另一个用户名您希望在Nexus Repo 3中使用npm登录: 并确保在Nexus UI的“安全/领域”下启用了npm承载令牌领域
也就是说,错误是403,而不是401。这意味着您将因权限而被拒绝。我建议检查nexus request.log并确保403来自nexus。它们可能来自http代理服务器。如果他们来自Nexus,则表示用户已通过身份验证,但在Nexus中没有从该repo下载的权限。我不知道如何或为什么,但如果我在命令中指定完整注册表,则不知何故,它现在可以工作了,例如:
npm——注册表=http://nexus.OMITTED.com/repository/npm-all/ 安装
而我的~/.npmrc
如下所示:
//nexus.OMMITED.com/repository/:_auth=OMMITED
registry=http://nexus.OMMITED.com/repository/npm-all
always-auth=true
//nexus.OMITTED.com/repository/:_authToken=OMITTED
registry=http://nexus.OMITTED.com/repository/npm-all/
_auth=OMITTED
email=bob@OMITTED.nl
所有这些对我来说都毫无意义,但我很高兴它起到了改变的作用
如果有人最终写了一个正确的答案来回答这个问题,比如这个为什么有效,这个如何有效,以及为什么正常的方式不起作用,那么我会欣然接受这个答案并奖励赏金。使用
npm login
需要我输入用户名,我的用户名是一个电子邮件地址,似乎有url不安全的字符,正因为如此,它不允许我再继续下去了。我还尝试将我的令牌添加为一个参数,方法是在我的令牌后面附加一个--auth
或--authToken
参数,但这被证明是没有问题的。使用--auth
命令时出现的错误是:npm WARN invalid config auth type=“my_Token”,
`Token由于明显的原因被忽略。当我使用--authToken
时,它只会再次提示我输入用户名。请注意403
错误代码似乎也是“随机”的,有时是403
,有时是401
。我注意到npmrc文件的第一行似乎是使用/
的注释。根据注释,不要使用/
作为注释,而是使用#
或代码>。不确定这将如何影响它,但需要尝试更改一些内容。此外,第一行是否正在尝试为url的范围设置\u auth
?您应该尝试将just\u auth
设置为您的令牌,以查看其是否有效。如果您需要确定范围,那么我在前面的评论中链接的文档似乎表明,要确定您所做的事情的范围,@scope:\u auth=…
,因此这是值得尝试的。(如果你好奇,这里有一些文档要结帐)