我最近开始为节点开发。我工作的公司有一个内部的npm注册表。我想知道如何使用不同的注册表设置取决于我正在开发的位置。为了说明,我有一个如下所示的目录结构:
~/Code
|
| -- My Projects
| |
| | -- Proj 1
| | -- Proj 2
|
|-- My Company
|
|--Proj 1
|--Proj 2
当我在“我的项目”中的一个项目中进行开发时,我希望npm注册表指向https://registry.npmjs.org(默认注册表)。但是,当我在“我的公司”中的一个项目中进行开发时,我希望npm注册表指向公司特定的注册表。现在,我的天真方法是使用
npm config set registry
更新注册表。
答案 0 :(得分:17)
使用私有npm注册表有两个不同的用例:
安装:使用--reg
或--registry
标记:
npm install mypackage --reg http://myreg.npmjitsu.com
发布:您也可以使用--reg
或--registry
,但我强烈建议您使用publishConfig
设置package.json
1}}文件(参见:the npm documentation)
{
"publishConfig": {
"registry": "http://myreg.npmjitsu.com"
}
}
这可以防止开发人员忘记--registry
标记
因此,当从他们的私人npm进行安装时,请将publishConfig
添加到公司使用package.json
的所有--registry
。
答案 1 :(得分:2)
只有在安装软件包时才需要注册表。当您希望从私人注册表安装时,可以使用此方法。
npm install packagename --registry https://myregistryurl
这也可能有用..
npm install https://myregistryurl/packagename
并在您使用公共注册表时安装正常方法。
答案 2 :(得分:2)
https://github.com/npm/npm/issues/4751
npm最近添加了对每个包.npmrc文件的支持,应该做你想要的。