NPM嵌套依赖项

时间:2018-01-10 16:32:22

标签: node.js npm package.json

我正在开发一个模块,我尝试尽可能通用(让我们说BaseModule),我想在另一个模块中将它扩展到目前的目的(让我们说ChildModule)

所以ChildModule以:

开头
require('BaseModule');

所以我添加了BaseModule作为ChildModule的依赖项。但是当我想在我的真实项目中使用它们时,我无法安装它们。安装BaseModule会删除ChildModule,并安装ChildModule移动BaseModule,之后我的代码无法访问它。

这两个模块都只在git存储库上(即尚未发布)。

有趣的是,猫鼬也是ChildModule的依赖,我没有这个问题。所以我想我忘记了BaseModule中的某些内容,但我不知道是什么......

它有点类似于这个问题NPM dependencies shared by dependencies,它应该在我的NPM版本(5.6)上修复。这个issue也很相似,但正如我之前所说,我不认为这是一个错误。

有没有办法拥有嵌套依赖?如果不是,进行这种扩展的标准方法是什么?

以下是不同的package.json:

BaseModule' package.json

{
  "name": "BaseModule",
  "main": "index.js",
  "repository": {
    "type": "git",
    "url": "git+ssh://.../BaseModule.git"
  },
  "bundledDependencies": false,
  }

ChildModule:

{
  "name": "ChildModule",
  "main": "index.js",
  "repository": {
    "type": "git",
    "url": "git+ssh://.../ChildModule.git"
  },
  "bundledDependencies": false,
  "dependencies": {
    "mongoose": "^4.13.9",
    "BaseModule": ".../BaseModule"

  }
}

和项目本身:

{
  "name": "Project", 
  "dependencies": {
    "mongoose": "^4.13.9",
    "ChildModule": ".../ChildModule",
    "BaseModule": ".../BaseModule",
    "andALotMore": "*"
  }
}

...代表我的存储库的正确地址。

0 个答案:

没有答案