我可以通过配置我的 .npmrc 从我的内部/私有(private)注册表发布和安装包,如下所示:
$ npm config set registry https://mynpm-registry.com
但是,我想配置我的 .npmrc 以代理到公共(public) https://registry.npmjs.com/ , 如果该软件包在我的内部注册表中不可用。
我知道我可以配置多个 npm 配置文件 - 一个用于内部注册表,一个用于外部注册表 - 如下所示:
$ npmrc -c my-internal-profile
$ npmrc -c my-external-profile
...但这不是我要找的。如果我的内部注册表中没有可用的包,我希望有一个包含两个注册表的单个 .npmrc 配置,它将代理到公共(public)注册表。
有没有办法做到这一点?
最佳答案
您可以这样做的一种方法是在您的.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
这是一个注册表管理器,您可以在其中创建私有(private)注册表并创建一组注册表(其中一个可能是 https://registry.npmjs.org )。然后对于 npm,它看起来只是一个普通的调用,但 Sonatype 做了以下工作:
关于javascript - 在 .npmrc 中配置多个注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60877361/