'How to get path excludes working in Madge?

I'm trying to run madge on a fairly big typescript project. Its compiled output goes to dist/*, and its React frontend are in public/*. Madge's documentation is pretty clear about how to exclude directories, but no matter what I try, it appears to still be checking these directories.

First attempt:

madge --circular --extensions ts,js --exclude '^(dist|public)' --ts-config ./tsconfig.json --warning .

The reason I think it's still checking there is because, first, I still see it scanning those directories as it runs:

screenshot

And also, its warnings show imports that only occur in public/:

enter image description here

(the '@'-style import is from module-alias)

What I've tried:

  • Using a regex like ^.*public.*$
  • Specifying the excludes in .madgerc rather than on cli:
{
    "fileExtensions": ["js","ts"],
    "tsConfig": "tsconfig.json",
    "excludeRegExp": ["^.*dist.*$", "^.*public.*$"]
}
  • Running with --debug (the output is so massive I can't really make much of it - if I run it to console it crashes with out-of-memory, and if I pipe to a file, it gets so big that it literally fills up my SSD - I had to cancel when the log file surpassed 25 gigs).

Interestingly, it doesn't seem to be reporting any cycles in public/ or dist/, so I think it might be "partially" working. However, it does still seem to be scanning & processing those excluded paths, so I can't get rid of all the warnings that shouldn't be relevant to this run.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source