我创建了一个.npmrc文件,配置我使用VSTS pacakge feed,但我的所有公共依赖项都没有安装(你知道,反应,lodash ......)
似乎一旦我将.npmrc文件配置为指向我的私人订阅源,就无法再访问所有公共包。
因为npm与Nuget相反,不支持多个软件包注册表(这里是相关的SA question),我目前只能运行npm install两次 - 一次没有和.npmrc文件到获取公共依赖项,并使用.npmrc文件获取私有。
VSTS是否镜像/代理公共注册表?如果没有 - 我是否应该使用2个不同版本的.npmrc文件运行npm install两次?
答案 0 :(得分:2)
处理它的简单方法是为您的Feed启用上游源。在此之后,如果您的Feed中不存在包,它将查找包形式npmjs.com。
另一种方法是您可以在命令中指定注册表,例如:npm install -g vsts-npm-auth --registry https://registry.npmjs.com --always-auth false
。
另一方面,我们可以将feed添加到项目的.npmrc文件中,而不是添加到用户的文件夹(c:\ Users [username])中,如果当前上下文在另一个路径中,则使用公共注册表。
答案 1 :(得分:0)
我没有私人npm feed的管理员权限。另外,vtss-npm-auth仅适用于Windows。
但是,我使用的私有软件包是有作用域的。依赖关系在package.json中看起来像这样:
{
...
"dependencies": {
"@scope-name/package-name": "^1.0.1",
...
}
}
在.npmrc中添加范围限定的注册表对我来说很有效。
@scope-name:registry=https://npm.package.feed.com/registry