检测项目中的循环依赖

新手上路,请多包涵

上次我在我的项目中发现了循环依赖的问题。我解决了我的问题,但我希望将来避免这种情况。我考虑在我的所有项目中发现循环依赖项并给我反馈的插件。

例子:

文件 a.js:

 var functionFromA= require("./b.js");
console.log("file a", functionFromA);
module.exports = {functionFromA: functionFromA};

文件 b.js:

 var functionFromB = require("./c.js");
console.log("file b", functionFromB );
module.exports = {functionFromB : functionFromB };

文件 c.js:

 var functionFromC = require("./a.js");
console.log("file c", functionFromC );
module.exports = {functionFromC : functionFromC }

当我运行文件 a.js 时,我在控制台中看到:

文件 c {}

文件 b { functionFromC: {} }

文件 { functionFromB: { functionFromC: {} } }

我在 npm 中找到了“Circular Dependency Plugin”,但我不知道如何使用它?可能有人有类似的问题并找到了解决方案?

原文由 new_user 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

您会发现其他有用的工具: https://www.npmjs.com/package/madge

非常易于使用: madge --circular [directory] 为您提供位于 [directory] 中的代码中的循环依赖列表。它还可以生成图形图像。

原文由 davidmpaz 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果你有 eslint 设置,你可以添加 eslint-plugin-import 并启用 import/no-cycle 规则。

原文由 Etienne Martin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题