我已经在gitlab中创建了一个库(country
),我想将其安装在另一个项目中。该库使用我的另一个库(dataloader
)。当我在项目中运行npm i
时,它会安装country
,但随后会在国内使用dataloader创建另一个node_modules。我想要主node_modules中的数据加载器库。我无法理解为什么dataloader程序包未包含在项目node_modules中
项目内部npm i的预期行为:
Example Project
|
+--node_modules
|
+--country
+--dataLoader`
国家图书馆Package.json 示例项目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`
答案 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