如何在两个NodeJS项目之间创建循环依赖关系

时间:2017-08-04 14:52:14

标签: javascript node.js reactjs ecmascript-6

我有两个项目需要彼此。

root-app由节点运行。它导入了child-app / index.js。

子应用程序也依赖于root-app。它需要从中导入Component.js。 child-app永远不会独立于root-app运行,它总是由root-app导入。

root-app:
  /Component.js
  /index.js
  /package.json

child-app:
  /index.js
  /package.json

所以基本上,root-app需要child-app,而child-app需要来自root-app的组件。

根应用程序/ index.js:

import ChildApp from 'child-app';

子应用内/ index.js

import Component from 'root-app/Component';

目前,我的package.json文件如下所示:

根应用程序/的package.json

{
  "name": "root-app",
  "dependencies": {
    "child-app": "file:../child-app"
  }
}

子应用内/的package.json

{
  "name": "child-app",
  "peerDependencies": {
    "root-app": "file:../root-app"
  }
}

这当然不起作用,我收到错误:

  

无法解析模块' root-app'从   '根应用程序/ node_modules /儿童应用内/ index.js'

所以我的问题是,有没有办法让这种依赖工作,而不需要创建一个第三个项目,将作为一个桥梁"在这两个项目之间?

谢谢!

1 个答案:

答案 0 :(得分:0)

"name":"root-app"中有child-app/package.json。但是,最好避免使用软件包之间的循环依赖关系。您可以查看dependency inversion principle以了解如何操作。