2017-10-22 57 views
0

我创建了一个.npmrc文件,该文件将我配置为使用VSTS pacakge提要,但是我的所有公共依赖不会安装(您知道, ,lodash ...)VSTS软件包提要:配置客户端以使用vsts提要后无法安装公共npm软件包

似乎有一次,我配置.npmrc文件指向我的私人饲料,所有公共包不再可访问。

由于npm与Nuget不同,不支持多个包注册表(这里是一个相关的SA question),我目前坚持运行npm install两次 - 一次没有和.npmrc文件获取公共依赖关系,一次.npmrc文件获取私有。

不是VSTS镜像/代理公共注册表?如果没有 - 我是否希望使用2个不同版本的.npmrc文件运行npm install两次?

+0

您是否在启用上游来源后解决了问题? –

+0

@ starain-MSFT我实际上是通过让我的私有包作用域来解决这个问题的(即,我的私有包的包名将类似于'@ scope/package'。然后我将.npmrc配置为仅指向vsts pacckage feed对于我的'@ scope',所以公共软件包会转到npmhs,我的软件包会转到我的私有vsts feed。 –

回答

1

处理它的简单方法是为您的Feed提供上游来源。在此之后,如果该包不存在于您的Feed中,它将查找包裹形式npmjs.com。

Use packages from npmjs.com

另一种方法是,你可以在命令中指定的注册表,例如:npm install -g vsts-npm-auth --registry https://registry.npmjs.com --always-auth false。另一方面,我们可以将feed添加到项目的.npmrc文件中,而不是在用户文件夹(c:\ Users [username])中,然后在当前上下文位于其他路径中时使用公共注册表。

+0

上游源代码是正确的路要走npm在这一点上不起作用。从https://docs.npmjs.com/files/npmrc中,加载“Each [.npmrc]”,并按优先顺序解析配置选项。例如,userconfig文件中的设置将覆盖globalconfig中的设置文件“,这与NuGet不同,NuGet将多个NuGet.config文件合并在一起。 –

+0

@Alex如果从没有.npmrc文件的其他文件夹运行npm命令,则只需使用全局配置文件。 –