1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【個人開発 with AI】Reactのコンポーネント間の結合関係(import, export)を可視化するアプリを作りました

Posted at

Reactのコンポーネント間の結合関係(import, export)を可視化するアプリを作りました

コンポーネントの結合関係を可視化できるアプリを作りました。

2024/12.06現在、meta情報はtitleしか付与していない。

実際の画面

デフォルト画面

default.png

フォルダアップロード画面

upload-form.png

フォルダ解析後

upload-video.gif

リポジトリはコードを多少綺麗にした後、貼ります。

開発のきっかけ

結合関係にあるコンポーネントを探すのを楽にしたいため作りました。

概要

解析したいディレクトリを選択・アップロードしたらフォルダを解析し、結合を調べて可視化します。基本的なimportexportに対応しているはずですので大体のReactのプロジェクトフォルダをアップロードしても動作すると思います。ファイルの総数は500以下までと制限を設けています。

グラフの座標計算アルゴリズムの実装は自分では実力不足だと感じたのでClaudeという生成AIを使用し実装してもらいました。結合関係にあるコンポーネントができるだけ近くに配置されるようになっています。また各コンポーネントのnodeは動かすことが可能なので結合関係を追跡することも可能です。

描画までの処理の流れ

  1. フォルダの解析
  2. ファイルの結合関係(import/export)を解析
  3. 各ノードの座標の計算
  4. データを生成
  5. 描画

技術スタック

  • Next.js
  • TaliwindCSS
  • Vercel
  • React Flow

Next.js

1ページアプリにはオーバースペックではありますが、App Routerに一刻も早く習得するために採用しました。

TailwindCSS

素のCSSを書くより簡単にスタイルを適用できるので採用。デメリットでよく挙がるクラスがとても長くなるのでそこが難点。クラス名を結合するライブラリを使用すると各種類ごとにクラス名が分割できるのでデメリットも克服可能。

Vercel

リポジトリを紐づけるだけで超簡単にアプリをデプロイできるため採用。独自のCI/CDも組んでくれる。

React Flow

Github Actionsのワークフローのマップのような各コンポーネント同士の結合が見やすいライブラリを探していてちょうどマッチしたので採用しました。色々なサービスでの採用実績もあるみたいです。

アプリの欠点

  • フィルタリング機能がないので、結合関係のコンポーネントのみ表示などができない
  • コンポーネント数が多いと画面外にはみ出すのでコンポーネントを探さないといけない

最後に

感想やエラーなどあればコメントに書いていただけると幸いです。
よろしくお願いいたします。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?