Node.js VSTS包源:配置客户端以使用VSTS源后,无法安装公共npm包

Node.js VSTS包源:配置客户端以使用VSTS源后,无法安装公共npm包,node.js,npm,azure-artifacts,Node.js,Npm,Azure Artifacts,我创建了一个.npmrc文件,该文件将我的配置为与VSTS pacakge feed一起使用,但我的所有公共依赖项都不会安装(你知道,react,lodash…) 似乎一旦我将.npmrc文件配置为指向我的私有提要,所有公共包就不再可访问 与Nuget相反,npm不支持多个包注册(这里有一个相关的例子),因此我目前只能运行两次npm安装—一次不使用and和.npmrc文件来获取公共依赖项,一次使用.npmrc文件来获取私有依赖项 VSTS不镜像/代理公共注册表吗?如果没有-我是否希望使用2个不同

我创建了一个.npmrc文件,该文件将我的配置为与VSTS pacakge feed一起使用,但我的所有公共依赖项都不会安装(你知道,react,lodash…)

似乎一旦我将.npmrc文件配置为指向我的私有提要,所有公共包就不再可访问

与Nuget相反,npm不支持多个包注册(这里有一个相关的例子),因此我目前只能运行两次npm安装—一次不使用and和.npmrc文件来获取公共依赖项,一次使用.npmrc文件来获取私有依赖项


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

处理此问题的简单方法是为您的提要启用上游源。在此之后,如果您的提要中没有包,它将从npmjs.com查找包

另一种方法是可以在命令中指定注册表,例如:
npm install-g vsts npm auth--registryhttps://registry.npmjs.com --始终验证为false


另一方面,我们可以只将提要添加到项目的.npmrc文件中,而不添加到用户的文件夹(c:\Users[username]),然后如果当前上下文位于另一个路径中,它将使用公共注册表

我没有私人npm订阅源的管理员权限。此外,vsts npm auth仅适用于windows

但是,我使用的私有包是有范围的。依赖项在package.json中类似于以下内容:

{
  ...
 "dependencies": {
  "@scope-name/package-name": "^1.0.1",
  ...
 }
}
将作用域注册表添加到.npmrc对我来说很有效

@scope-name:registry=https://npm.package.feed.com/registry

上游资源是正确的选择。在最后一段的要点上,npm不是这样工作的。From,“每个[.npmrc]都已加载,配置选项按优先级顺序解析。例如,userconfig文件中的设置将覆盖globalconfig文件中的设置。”这与NuGet不同,NuGet合并了它发现的多个NuGet.config文件。@Alex如果从没有.npmrc文件的其他文件夹运行npm命令,它只是使用全局配置文件。你在启用上游源之后解决了这个问题吗?@starain MSFT我实际上通过对我的私有包进行范围限定来解决这个问题(即,我的私有包的包名类似于
@scope/package
。然后,我将.npmrc配置为仅指向我的
@scope
的vsts包源。因此,公共包将转到npmhs,而我的包将转到我的私有vsts源。