根据目录切换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:

  1. 安装:使用--reg--registry标志:

     npm install mypackage --reg http://myreg.npmjitsu.com 
  2. 发布:你也可以使用--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文件的支持,应该做你想做的。