NPM安装个人节点库

时间:2019-04-23 08:21:47

标签: node.js npm npm-install

我已经在gitlab中创建了一个库(country),我想将其安装在另一个项目中。该库使用我的另一个库(dataloader)。当我在项目中运行npm i时,它会安装country,但随后会在国内使用dataloader创建另一个node_modules。我想要主node_modules中的数据加载器库。我无法理解为什么dataloader程序包未包含在项目node_modules中

项目内部npm i的预期行为:

Example Project
|
+--node_modules
  |
  +--country
  +--dataLoader`

国家图书馆Package.json Country Package.JSON 示例项目Package.json Example project Package.JSON

问题: 一旦我习惯在示例项目中安装npm,那么我将得到

这样的文件夹结构
Observed Behaviour on npm i inside the project:

Example Project
|
+--node_modules
  |
  +--country
     |
     +--node_modules
       |
       +--dataLoader`

但是当我尝试使用npm时,请根据需要创建git + http://xxxxxxxxx/countries.git#master文件夹结构。

例如:

Example Project
|
+--node_modules
  |
  +--country
  +--dataLoader`

1 个答案:

答案 0 :(得分:2)

使用Verdaccio,我的问题已解决。

什么是verdaccio?

Verdaccio是在Node.js中构建的轻量级私有npm代理注册表

我们需要创建私人的。 将verdaccio与任何节点程序包管理器客户端一起使用非常简单。 您可以使用自定义注册表为所有项目全局设置

npm set registry http://localhost:4873

然后在您的私有库和示例项目中添加.npmrc

.npmrc

registry http://localhost:4873

然后,您无需在npm上发布您的私有库,而需要在verdaccio上发布。

使用以下命令

npm publish

然后使用您的npm install文件夹结构创建我想要的正确

Example Project
|
+--node_modules
  |
  +--country
  +--dataLoader