检测项目中的循环依赖

new*_*ser 3 javascript node.js npm

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

例:

文件a.js:

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

文件b.js:

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

文件c.js:

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

当我运行文件a.js时,我在控制台中看到:
文件c {}
文件b {functionFromC:{}}
文件a {functionFromB:{functionFromC:{}}}

我在npm中发现了“循环依赖插件”,但我不知道如何使用?可能有人遇到类似问题并找到了解决方案?

dav*_*paz 6

您可以找到此有用的其他工具:https : //www.npmjs.com/package/madge

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


Eti*_*tin 5

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