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

mwecs4sa  于 9个月前  发布在  其他
关注(0)|答案(3)|浏览(88)

我为我的一个npm包使用了一个私有的npm注册表,我还从默认的npm注册表引用了几个其他的包。我现在做的是

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

但是,这会在全球范围内改变注册表。我可以在项目的根目录下手动创建一个.npmrc,并在其中手动设置注册表。这不会替换我的全局注册表,并且仅为特定项目使用私有注册表。但是,我想用一个命令来完成这项工作,而不必手动创建.npmrc并设置注册表。
如果你想知道我为什么需要这个,我知道如何自己做,但是我必须指导其他用户如何做,并且只为他们提供一个命令会更简单。我想知道是否有办法做到这一点:

npm config --local set registry https://private.registry.endpoint
b1uwtaje

b1uwtaje1#

我们通过限定私有包的范围来解决这个问题,这允许我们只为特定的@scope添加私有注册表,而不是更改整个默认注册表来下载私有包。
例如
如果我们有一个名为package-name的包,在私有注册表中,我们将其发布为@company/package-name,然后将私有注册表范围设置为@company
npm config set @company:registry https://private.registry.endpoint

xe55xuns

xe55xuns2#

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

pxiryf3j

pxiryf3j3#

您所寻求的存在于--location project选项中。见下文:

npm config --location project set registry https://private.registry.endpoint

相关问题