当工件已将其作为上游源时,为什么我的项目需要多个npmrc注册中心?

时间:2019-01-16 02:13:27

标签: npm azure-devops azure-artifacts

我有两个使用Node / NPM / Lerna来管理和分发多个软件包的Mono仓库。

项目X 包含带有单个注册表的.npmrc文件。该注册表适用于包含三个上游源的私有Azure Feed。 命名(A,B,C)

  1. A -公共NPMJS
  2. B -私人套餐
  3. C -私人套餐

项目Y 需要 .npmrc文件,其中包含两个命名空间注册表。

  1. 第一个与 Project X 使用的相同。
  2. 第二个 *似乎* 是必需的,并且@register是 B 的Azure Feed。

我的问题是我的.npmrc文件是否正在注册包含三个上游提要的软件包,为什么我还要在我的.npmrc文件中另外注册这些上游提要之一( B < / strong>)?

据我的文档了解,上游Feed是在.npmrc文件中注册多个命名空间包的一种替代方法。

我显然错过了一些东西。请协助。谢谢

1 个答案:

答案 0 :(得分:0)

您正确的认为Project X正在使用我们建议的设置,它是.npmrc的{​​{1}}行中的单个Azure Artifacts提要,该提要是您需要的任何其他提要的上游。

但是,Project Y可能选择使用scopes来仅使用Azure Artifacts中的有限软件包,而直接从npmjs.com中提取大多数软件包。我们通常不建议这样做,但这是一种有效的工作方式。请注意,在此配置中,Project Y不能利用上游资源的优势(例如,您保存在npmjs.com上的任何内容的副本,以防日后被删除)。

如果要迁移到推荐的配置,请尝试确保Project Y的registry=包含一行.npmrc

registry=

查看它是否仍在生成(运行registry=https://dev.azure.com/.../ProjectXFeedWithUpstreams/...时删除或重命名node_modules)。