React Dependency Analyzer
安裝
npm install react-dep-analyzer
基本使用
import { createAnalyzer } from 'react-dep-analyzer';
const analyzer = createAnalyzer();
analyzer.run();
analyzer.generateMarkDown();
analyzer.generateDependencyTree();
配置選項
你可以透過傳入配置物件來自定義分析器的行為:
interface ComponentPathConfig {
path: string;
importPrefix: string;
}
const analyzer = createAnalyzer({
name: 'Component',
targetPath: 'src/components',
pagesPath: 'src/pages',
fileExtensions: ['.tsx'],
componentPaths: [
{
path: 'src/components',
importPrefix: '@/components'
},
{
path: 'src/elements',
importPrefix: '@/elements'
}
],
outputDir: 'tools/usageAnalyzer',
exportNamePattern: /^[A-Z]/,
});
預設配置
工具內建以下預設配置:
const defaultConfig = {
name: 'Component',
targetPath: 'src/components',
pagesPath: 'src/pages',
fileExtensions: ['.tsx'],
componentPaths: [
{
path: 'src/components',
importPrefix: '@/components'
},
{
path: 'src/elements',
importPrefix: '@/elements'
}
],
outputDir: 'tools/usageAnalyzer',
exportNamePattern: /^[A-Z]/,
};
輸出範例
Markdown 報告 (dependencies.md)
# Component Dependencies and Usage
- Button (src/components/Button.tsx)
Dependencies:
- @/elements/Icon (src/elements/Icon.tsx)
Imports: Icon
Used in pages:
- src/pages/home.tsx
- src/pages/about.tsx
- Card (src/components/Card.tsx)
Dependencies:
- @/components/Button (src/components/Button.tsx)
Imports: Button
Used in pages:
- src/pages/products.tsx
依賴樹圖 (tree.md)
工具會生成一個使用 Mermaid 語法的依賴樹圖,可以直接在支援 Mermaid 的 Markdown 檢視器中顯示(如 GitHub)。
flowchart TD
Button["Button"]
Card["Card"]
Icon["Icon"]
Button --> Icon
Card --> Button
Button --> page_home["home"]
Button --> page_about["about"]
Card --> page_products["products"]
注意事項
- 工具預設只分析以大寫字母開頭的匯出(符合 React 元件命名規範)
- 支援分析命名匯出、預設匯出和批量匯出
- 目前支援
.tsx
檔案的分析,可透過配置擴展支援其他檔案類型 - 工具會自動尋找專案根目錄(包含 package.json 的目錄)
- 所有路徑都相對於專案根目錄進行解析
- 確保專案目錄結構符合配置中指定的路徑
授權條款
MIT