2

我想使用 madge 打印一个 Javascript 依赖图。它成功打印给定文件的所有依赖项。不幸的是,它会跳过导入的.ts文件,随后不会在图表中显示它们。

这是我的配置(.madgerc):

{
    "fileExtensions": ["js", "ts"],
    "tsConfig": "./tsconfig.json",
    "graphVizOptions": {
        "G": {
            "splines": "ortho"
        }
    }
}

这是我的tsconfig.json

{
  "compilerOptions": {
    "esModuleInterop": true,
    "allowJs": true,
    "preserveConstEnums": true,
    "module": "commonjs",
    "target": "ES2018",
    "moduleResolution": "node",
    "noEmit": true,
    "rootDir": "../"
  }
}

我像这样运行 madge:

madge src/main/path/to/file/view-model.js --warning --debug -i ~/Desktop/graph/view-model.png

它打印:

✔ Image created at /Users/patrick/Desktop/graph/view-model.png

✖ Skipped 1 file

./transform-sponsor

transform-sponsor在我的 Javascript 文件中导入,如下所示:

const {transformSponsors} = require('./transform-sponsor');

所以我的问题是,为什么 madge 会跳过我的打字稿文件。即使我按照文档tsconfig中的说明专门添加了一个文件

4

2 回答 2

0

根据我的经验,处理 JavaScript - 文件比 Typescript 文件好得多。我的解决方案是在转译的 JavaScript - 文件上使用 madge,而不是在原始的 Typescript - src - 文件上使用。

我真的不知道你的问题的答案,但我认为 madge 最初是为 JavaScript 制作的 - 文件和 TypeScript 只是 JavaScript 的超集,因此对 madge 来说并不那么重要 - 开发人员(请不要向我扔香蕉这不是真的)

于 2020-05-08T13:35:15.973 回答
0

只需添加--extensions ts到运行的脚本

于 2022-02-08T11:41:26.297 回答