created: 2024-06-25T09:53:31.143Z

madge で TypeScript 依存関係を可視化する

ヤバい感じで依存し合ってるコードがあったので、どのへんから手をつけたものか難しかったのでいったん見えるようにしてみた。

よかった

  • svg で出力してくれるので画像を github に貼ったりとかすると具合がよい
  • パスエイリアスにも対応してくれてて不足なくみられた

docker で実行したい

本筋とは関係ないが、Graphviz でいろんな依存が mac に入るのが嫌だったので docker run で実行している。

FROM node
RUN apt update
RUN apt-get install -y graphviz
RUN npm install -g madge
WORKDIR /home/app
ENTRYPOINT ["madge"]
$ docker build --tag madge .
$ docker run --rm -i \
    -v $(pwd):/home/app:rw madge \
    --webpack-config ./webpack.config.js \
    --ts-config ./tsconfig.json \
    --exclude 'test.tsx?' \
    --image /home/app/graph.svg \
    ./src/index.ts

ffmpeg

依存がたくさん入るのがイヤで、似たようなことを ffmpeg でもやっていた。

Good Code, Bad Code ~持続可能な開発のためのソフトウェアエンジニア的思考
[ad] Good Code, Bad Code ~持続可能な開発のためのソフトウェアエンジニア的思考
Tom Long, 秋勇紀 (単行本(ソフトカバー))