javascript - 在 .npmrc 中配置多个注册表

标签 javascript node.js npm

我可以通过配置我的 .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 做了以下工作:
  • 如果在您的私有(private)注册表中找不到,它会查找您提到的另一个注册表。
  • 关于javascript - 在 .npmrc 中配置多个注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60877361/

    相关文章:

    javascript - 还有哪些其他选项可以在不构建服务器的情况下存储两个单独的用户数据?

    javascript - Visual Studio Code 'const' 只能在 .ts 文件中使用

    node.js - 如何使用 npm 安装 node-win-shortcut

    javascript - 为什么我似乎需要 Promise 和回调来将 JSON 数据公开给全局变量?

    javascript - 为什么我的动态按钮没有被 knockoutjs 禁用?

    node.js - 是否可以要求一个类创建一个新实例而不必每次都调用 new ?

    node.js - 无法使用 fetch 发送请求

    mysql - NodeJS mysql 模块将 localhost 转换为 127.0.0.1 并且连接失败

    node.js - 安装 Karma (Testacular) 时出错

    laravel - 未找到模块 : Error: Can't resolve 'flag-icon-css' in