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

Ope*_*ack 2 node.js npm npm-install

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

https://registry.npmjs.org
Run Code Online (Sandbox Code Playgroud)

我的公司正在托管自己的节点注册表,我想使用它。如何强制NPM使用此本地注册表。

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

有没有办法让特定计算机上的所有用户使用此内部注册表?

Kau*_*kar 5

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

\n\n

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

\n\n
"publishConfig": {\n   "registry": "http://my-internal-registry.local"\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

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

\n

  • 感谢您的回答。我添加了“private”和“publishConfig”选项。但系统仍在尝试使用 `registry.npmjs.org ` 我收到以下错误 `584 http GET https://registry.npmjs.org/classnames 585 信息重试将重试,上次尝试时出错:错误:getaddrinfo ENOTFOUND 注册表.npmjs.org 注册表.npmjs.org:443` (2认同)

Ope*_*ack 5

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

npm config set registry PATH_TO_YOUR_LOCAL_REGISTRY
Run Code Online (Sandbox Code Playgroud)

另一种选择是创建一个。NPMRC文件并将其放入您的项目根目录。如该链接项目中所述,特定的npmrc文件将具有最高优先级,并将覆盖其他配置。在此文件中,只需更新注册表即可。