根据目录切换npmregistry
我最近开始为节点开发。 我工作的公司有一个内部npmregistry。 我想知道如何使用不同的registry设置,具体取决于我在哪里开发。 为了说明,我有一个目录结构如下所示:
~/Code | | -- My Projects | | | | -- Proj 1 | | -- Proj 2 | |-- My Company | |--Proj 1 |--Proj 2
当我在“我的项目”中的一个项目中开发时,我希望npmregistry指向https://registry.npmjs.org (默认registry)。 但是当我在“我的公司”中的一个项目中开发时,我希望npmregistry指向公司特定的registry。 现在,我的天真的方法是使用npm config set registry
来更新registry。
有两种不同的使用情况使用您的私人npmregistry:
-
安装:使用
--reg
或--registry
标志:npm install mypackage --reg http://myreg.npmjitsu.com
-
发布:你也可以使用
--reg
或--registry
,但是我强烈build议你在你的package.json
文件中使用publishConfig
设置(参见: npm文档 ){ "publishConfig": { "registry": "http://myreg.npmjitsu.com" } }
这可以防止开发人员通过忘记
--registry
标志意外地将私人模块发布到公共registry中
因此,在您的公司使用--registry
时,将publishConfig
添加到您的公司的所有package.json
以便从其私有npm进行安装。
只有在安装软件包时才需要registry。 当您希望从私有registry进行安装时,您可以使用它。
npm install packagename --registry https://myregistryurl
这可能也工作..
npm install https://myregistryurl/packagename
只需在使用公共registry时安装正常的方式即可。
https://github.com/npm/npm/issues/4751
npm最近增加了对per-package .npmrc文件的支持,应该做你想做的。