25

我最近开始为节点开发。我工作的公司有一个内部 npm 注册表。我想知道如何根据我的开发位置使用不同的注册表设置。为了说明,我有一个如下所示的目录结构:

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

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

4

3 回答 3

29

使用私有 npm 注册表有两个不同的用例:

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

    npm install mypackage --reg http://myreg.npmjitsu.com
    
  2. 发布:您也可以使用--regor --registry,但我强烈建议您使用文件publishConfig中的设置package.json(请参阅:npm 文档

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

    这可以防止开发人员通过忘记--registry标志意外地将私有模块发布到公共注册表

因此,从他们的私人 npm 安装时,添加publishConfig到所有package.json供您公司使用的内容。--registry

于 2013-09-26T05:45:44.460 回答
5

https://github.com/npm/npm/issues/4751

npm 最近添加了对每个包的 .npmrc 文件的支持,应该可以满足您的需求。

于 2014-06-13T15:35:26.140 回答
3

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

npm install packagename --registry https://myregistryurl

这也可以工作..

npm install https://myregistryurl/packagename

当您使用公共注册表时,只需按正常方式安装即可。

于 2013-09-25T22:50:28.937 回答