在.npmrc中配置多个注册表

时间:2020-03-26 22:46:41

标签: javascript node.js npm

我可以通过配置.npmrc来从内部/私有注册表中发布和安装软件包:

  $ npm config set registry https://mynpm-registry.com

但是,我想将.npmrc配置为代理到公共https://registry.npmjs.com/如果该软件包在我的内部注册表中不可用。

我了解我可以配置多个npm配置文件-一个用于内部,一个用于外部注册表-

$ npmrc -c my-internal-profile
$ npmrc -c my-external-profile

...但这不是我想要的。我希望有一个同时包含两个注册表的.npmrc配置,如果我的内部注册表中没有可用的软件包,它将代理到公共注册表。

反正有这样做吗?

1 个答案:

答案 0 :(得分:3)

一种可行的方法是将.npmrc文件中的作用域包。

范围内的程序包可以简单地放入程序包中,并按名称空间分组。您可能已经看到@angular/core@react/something。因此,这些是作用域包。

在您的.npmrc文件中,您可以执行以下操作

@yourorg:registry=http://localhost:4040/
registry=https://registry.npmjs.com

所以,这基本上意味着您将从您的注册表中接收@yourorg下的所有内容,但其他内容将从Registry.npmjs.org中获取。


如果第一个选项不能解决您要尝试执行的操作,则应调查https://help.sonatype.com/repomanager3/download

这是一个注册表管理器,您可以在其中创建私人注册表并创建一组注册表(其中一个可以是https://registry.npmjs.org)。然后对于npm,它看起来像是一个常规调用,但是Sonatype确实完成了:

  • 如果在您的私人注册表中找不到,它将查找您提到的另一个注册表。
相关问题