上一次我发现我的项目中有循环依赖的问题。我解决了我的问题,但是,我想在将来避免这个问题。我想在我的所有项目中发现循环依赖的插件,并给我反馈。
示例:
文件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 {函数来自C:{}}
将{函数从B:{函数来自C:{}}}
我在npm中找到了"循环依赖插件",但是我不知道如何使用它?也许有人有类似的问题并且找到了解决方法?
4条答案
按热度按时间uelo1irk1#
您会发现其他工具非常有用:https://www.npmjs.com/package/madge
非常容易使用:
madge --circular [directory]
为您提供了位于[directory]
中的代码的循环依赖列表。它还可以生成图形图像。8yparm6h2#
正如davidmpaz所建议的,madge是一个很好的工具,但是它只检测循环依赖,并不指出这些循环依赖是否会导致应用程序出现问题。
我做了一个工具来检测循环依赖关系,它会警告你由cd.https://www.npmjs.com/package/detect-circular-deps引起的问题
nkoocmlb3#
如果安装了eslint,则可以添加eslint-plugin-import并启用
import/no-cycle
规则。nkhmeac64#
救了我一命的工具是dpdm。
它的一个特别棒的地方是,它比madge更好地处理了typescript和javascript文件的混合