如何仅为特定项目设置npm注册表

Kon*_*nev 7 node.js npm npm-install

我正在为我的一个npm软件包使用私有的npm注册表,我还有一些从默认的npm注册表引用的其他软件包.我现在正在做的是:

npm config set registry https://private.registry.endpoint
Run Code Online (Sandbox Code Playgroud)

但是,这会全局更改注册表.我可以手动创建.npmrc项目的根目录并手动设置注册表.这不会取代我的全局注册表,只会将私有注册表用于特定项目.但是,我想用命令执行此操作,而不必手动创建.npmrc和设置注册表.

如果您想知道为什么我需要这个,我知道如何自己做,但是我必须引导其他用户如何做,并且为它们提供命令会更简单.我需要知道是否有办法做某种事情:

npm config --local set registry https://private.registry.endpoint
Run Code Online (Sandbox Code Playgroud)

Kon*_*nev 16

我们通过确定私有包的范围来解决这个问题,这允许我们仅添加特定的私有注册表,@scope而不是更改整个默认注册表来下载私有包。

例如

如果我们有一个名为 的包package-name,则在我们的私有注册表中将其发布为@company/package-name,然后将私有注册表范围设置为@company

npm config set @company:registry https://private.registry.endpoint


小智 5

我正面临这个问题。通过将.npmrc文件放入项目根目录并分配所需的注册表来解决此问题。


Ben*_*ley 5

您所寻求的东西与选项一起存在--location project。见下文:

npm config --location project set registry https://private.registry.endpoint
Run Code Online (Sandbox Code Playgroud)

  • 这实际上是一个非常好的简洁答案。我只想补充一点,您需要从项目的根目录(package.json 所在的位置)运行此命令,以避免可能的冲突。 (2认同)