Lately, I was researching how to compile Angular@6 project using angular-compiler - ngc
. And found out that one of a reason an Angular project could fail to compile are circular dependencies in TypeScript files. After a quick research, I found a great developer tool madge which allows finding such dependencies.
Madge is a developer tool for generating a visual graph of your module dependencies, finding circular dependencies, and give you other useful info.
Let’s take a look on a trivial example where we have two TypeScript modules depending on each other.
ModuleA depends on ModuleB.
And ModuleB with dependency on ModuleA.
By running a cli command npx madge --circular --extensions ts ./
we can quickly get a list of circular dependencies of all .ts
files in current directory and its subdirectories.
That's it! Now you see where you have circular dependencies and can go and fix it.
I hope you will find this little hint useful and it will help you to improve the quality of your TS projects. I encourage you to explore the tool as it provides much more than just circular dependency finding. And see how you could incorporate it in your web development process.