2013-09-25 36 views
13

我最近开始为节点开发。我工作的公司有一个内部npm注册表。我想知道如何使用不同的注册表设置,具体取决于我正在开发的位置。为了说明这一点,我有一个目录结构像图所示:根据目录切换npm注册表

~/Code 
| 
| -- My Projects 
| | 
| | -- Proj 1 
| | -- Proj 2 
| 
|-- My Company 
    | 
    |--Proj 1 
    |--Proj 2 

当我在“我的项目”的一个项目正在开发,我想故宫注册表以指向https://registry.npmjs.org(默认的注册表)。但是当我在“我的公司”中的其中一个项目中开发时,我希望npm注册表指向公司特定的注册表。现在,我的天真的方法是使用 npm config set registry来更新注册表。

回答

15

有两种截然不同的使用情况,使用您的私人NPM注册表:

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

    npm install mypackage --reg http://myreg.npmjitsu.com 
    
  2. 出版:你也可以使用--reg--registry,但我强烈建议您使用在package.json文件设置(见:the npm documentation

    { 
        "publishConfig": { 
        "registry": "http://myreg.npmjitsu.com" 
        } 
    } 
    

    这可以防止开发人员不小心被遗忘--registry标志

发布私有模块向公众注册表,以便添加publishConfig所有的您的公司的package.json使用--registry从他们的私人npm进行安装时。

+0

感谢我认为它是一个很好的设计在npm命令上有--reg标志。这个标志是否也适用于其他命令?像npm搜索/ npm更新? – gprasant

+0

当你将你的私人包装放入你的package.json时会发生什么? –

2

只有在安装软件包时才需要注册表。当您希望从私人注册表进行安装时,您可以使用它。

npm install packagename --registry https://myregistryurl 

这可能工作太..

npm install https://myregistryurl/packagename 

,并只安装您使用的是公共登记处时,以正常的方式。