VSTS 包提要:将客户端配置为使用 vsts 提要后无法安装 public npm 包

VSTS package feed: Cannot install public npm packages after configuring client to work with vsts feed

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

似乎一旦我将 .npmrc 文件配置为指向我的私人提要,所有 public 包都无法再访问。

因为 npm 与 Nuget 不同,它不支持多个包注册表(这里有一个相关的 SA question),我目前坚持使用 运行ning npm install 两次 - 一次没有和 .npmrc文件获取 public 依赖项,然后使用 .npmrc 文件获取私有文件。

VSTS 不镜像/代理 public 注册表吗?如果不是 - 我是否需要 运行 npm install 两次,使用 .npmrc 文件的 2 个不同版本?

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

Use packages from npmjs.com

另一种方式是在命令中指定registry,例如:npm install -g vsts-npm-auth --registry https://registry.npmjs.com --always-auth false.

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

我没有私人 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