如何强制 NPM 使用本地托管的注册表

How to force NPM to use a locally hosted registry

安装节点模块时,NPM 从默认注册表获取包:

https://registry.npmjs.org

我的公司正在托管自己的节点注册表,我想使用它。我怎样才能强制 NPM 使用这个本地注册表。

我不想使用 npm install --registry 选项。

有没有办法让特定机器上的所有用户都使用这个内部注册表?

您不必使用 --registry 选项——您只需将 package.json 设置为指向您的内部存储库 [0]:

在您的 package.json 中设置 "private": true 以防止您的包被发布,并设置:

"publishConfig": {
   "registry": "http://my-internal-registry.local"
}

强制仅将其发布到您的内部注册表。

[0] https://docs.npmjs.com/misc/registry#i-dont-want-my-package-published-in-the-official-registry-its-private

对我有用的是,我 运行 以下命令:

npm config set registry PATH_TO_YOUR_LOCAL_REGISTRY

另一种选择是创建一个 .NPMRC 文件并将其放入您的项目根目录中。正如这个 link 中提到的,项目特定的 npmrc 文件将具有最高优先级并且它将覆盖其他配置。在此文件中,只需更新注册表。

在 npmrc 文件中,添加以下内容:

registry = "https://path to local registry"