init: 导入团队知识库内容

This commit is contained in:
yueqian-ai
2026-05-14 16:56:48 +08:00
commit acca2041f0
1681 changed files with 285734 additions and 0 deletions
@@ -0,0 +1,894 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>代码结构分析工具对比分析</title>
<style>
:root {
--color-primary: #1677FF;
--color-primary-hover: #4096FF;
--color-primary-active: #0958D9;
--color-primary-bg: #E6F4FF;
--color-success: #52C41A;
--color-success-bg: #F6FFED;
--color-success-border: #B7EB8F;
--color-warning: #FAAD14;
--color-warning-bg: #FFFBE6;
--color-warning-border: #FFE58F;
--color-error: #FF4D4F;
--color-error-bg: #FFF2F0;
--color-error-border: #FFCCC7;
--bg: #F5F5F5;
--bg-secondary: #FFFFFF;
--bg-tertiary: #FAFAFA;
--border: #D9D9D9;
--border-light: #F0F0F0;
--text-primary: #141414;
--text-secondary: #595959;
--text-tertiary: #8C8C8C;
--radius-sm: 6px;
--radius-md: 8px;
--shadow-sm: 0 1px 2px rgba(0,0,0,0.03), 0 1px 6px -1px rgba(0,0,0,0.02);
--shadow-md: 0 2px 4px rgba(0,0,0,0.04), 0 4px 12px -2px rgba(0,0,0,0.04);
--sidebar-w: 260px;
--header-h: 64px;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Segoe UI', Roboto, Oxygen, sans-serif;
background: var(--bg);
color: var(--text-primary);
font-size: 14px;
line-height: 1.57;
}
/* Scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #D9D9D9; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #8C8C8C; }
/* Header */
.header {
position: fixed;
top: 0; left: 0; right: 0;
height: var(--header-h);
background: rgba(255,255,255,0.85);
backdrop-filter: blur(12px);
border-bottom: 1px solid var(--border-light);
display: flex;
align-items: center;
padding: 0 1.5rem;
z-index: 100;
}
.header h1 {
font-size: 24px;
font-weight: 700;
background: linear-gradient(135deg, var(--color-primary), #722ED1);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/* Sidebar */
.sidebar {
position: fixed;
top: var(--header-h); left: 0; bottom: 0;
width: var(--sidebar-w);
background: #FFFFFF;
border-right: 1px solid var(--border);
overflow-y: auto;
padding: 1.25rem 0;
z-index: 90;
}
.sidebar .toc-label {
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.1em;
color: var(--text-secondary);
padding: 0 1.25rem;
margin-bottom: 0.75rem;
}
.sidebar nav ol { list-style: none; padding: 0; counter-reset: toc; }
.sidebar nav li { counter-increment: toc; padding: 0; }
.sidebar nav a {
display: block;
padding: 0.45rem 1.25rem;
color: var(--text-secondary);
text-decoration: none;
font-size: 13px;
line-height: 1.4;
border-left: 2px solid transparent;
transition: all 0.15s;
}
.sidebar nav a::before {
content: counter(toc) ". ";
color: var(--color-primary);
font-weight: 600;
font-size: 12px;
margin-right: 0.4rem;
}
.sidebar nav a:hover {
color: var(--text-primary);
background: var(--color-primary-bg);
}
.sidebar nav a.active {
color: var(--color-primary);
border-left-color: var(--color-primary);
background: var(--color-primary-bg);
font-weight: 600;
}
/* Main content */
.main {
margin-left: var(--sidebar-w);
margin-top: var(--header-h);
padding: 2rem 2.5rem 4rem;
min-height: calc(100vh - var(--header-h));
}
/* Sections */
section {
margin: 40px 0;
scroll-margin-top: calc(var(--header-h) + 1rem);
}
section h2 {
font-size: 24px;
padding-bottom: 8px;
border-bottom: 1px solid var(--border);
margin-bottom: 20px;
color: var(--color-primary);
}
section h3 {
font-size: 20px;
margin: 24px 0 12px;
color: #722ED1;
}
section h4 {
font-size: 16px;
margin: 16px 0 8px;
color: var(--color-success);
}
/* Comparison table */
.table-wrap { overflow-x: auto; margin: 20px 0; }
table {
width: 100%;
border-collapse: collapse;
font-size: 13px;
}
th, td {
padding: 10px 14px;
border: 1px solid var(--border);
text-align: left;
vertical-align: top;
}
th {
background: var(--bg-tertiary);
font-weight: 600;
position: sticky;
top: 0;
}
td { background: var(--bg-secondary); }
tbody tr:hover td { background: var(--color-primary-bg); }
.star-highlight { color: var(--color-warning); font-weight: 700; font-size: 15px; }
/* Language table */
.lang-table {
width: 100%;
border-collapse: collapse;
font-size: 13px;
}
.lang-table th, .lang-table td {
padding: 8px 12px;
border: 1px solid var(--border);
text-align: center;
}
.lang-table th { background: var(--bg-tertiary); font-weight: 600; }
.lang-table td:first-child { text-align: left; font-weight: 500; }
.lang-table .first-row { background: var(--color-primary-bg); }
.check { color: var(--color-success); font-weight: 700; }
.cross { color: var(--color-error); opacity: 0.4; }
.partial { color: var(--color-warning); font-weight: 600; }
/* Card grid */
.card-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
gap: 20px;
margin: 20px 0;
}
.card {
background: var(--bg-secondary);
border: 1px solid var(--border);
border-radius: var(--radius-md);
padding: 24px;
transition: all 0.2s ease;
}
.card:hover {
border-color: var(--color-primary);
box-shadow: var(--shadow-md);
}
.card h3 { margin: 0 0 4px; font-size: 20px; color: var(--text-primary); }
.card .repo {
color: var(--color-primary);
font-size: 13px;
font-family: 'SF Mono', Monaco, monospace;
}
.card .stars {
display: inline-block;
margin: 8px 0;
padding: 4px 12px;
background: var(--color-warning-bg);
border: 1px solid var(--color-warning-border);
border-radius: 20px;
color: var(--color-warning);
font-weight: 600;
font-size: 14px;
}
.card .stars.gold { color: #f0c040; }
.card p { color: var(--text-secondary); font-size: 14px; margin: 8px 0 0; }
.card ul { margin: 10px 0 0 18px; color: var(--text-secondary); font-size: 13px; }
.card ul li { margin: 4px 0; }
.badge {
display: inline-block;
padding: 2px 10px;
border-radius: 12px;
font-size: 12px;
font-weight: 600;
margin-right: 6px;
}
.badge-python { background: var(--color-primary-bg); color: var(--color-primary); border: 1px solid rgba(22, 119, 255, 0.3); }
.badge-js { background: var(--color-warning-bg); color: var(--color-warning); border: 1px solid var(--color-warning-border); }
.badge-kotlin { background: rgba(114, 46, 209, 0.08); color: #722ED1; border: 1px solid rgba(114, 46, 209, 0.2); }
.badge-mit { background: var(--color-success-bg); color: var(--color-success); border: 1px solid var(--color-success-border); }
.badge-mpl { background: var(--color-error-bg); color: var(--color-error); border: 1px solid var(--color-error-border); }
.badge-nolicense { background: rgba(140, 140, 140, 0.08); color: var(--text-secondary); border: 1px solid rgba(140, 140, 140, 0.2); }
/* Pros/Cons */
.pros-cons {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
margin: 16px 0;
}
.pros, .cons {
background: var(--bg-secondary);
border: 1px solid var(--border);
border-radius: var(--radius-md);
padding: 20px;
}
.pros { border-left: 3px solid var(--color-success); }
.cons { border-left: 3px solid var(--color-error); }
.pros h4 { color: var(--color-success); margin-bottom: 8px; }
.cons h4 { color: var(--color-error); margin-bottom: 8px; }
.pros ul, .cons ul { margin-left: 18px; color: var(--text-secondary); font-size: 13px; }
.pros ul li, .cons ul li { margin: 4px 0; }
/* Claude recommendation */
.claude-rec {
background: linear-gradient(135deg, rgba(22, 119, 255, 0.05), rgba(114, 46, 209, 0.05));
border: 1px solid var(--border);
border-radius: var(--radius-md);
padding: 24px 28px;
margin: 24px 0;
}
.claude-rec h4 { color: var(--color-primary); margin-bottom: 12px; font-size: 16px; }
.claude-rec p { color: var(--text-secondary); margin: 6px 0; font-size: 14px; }
.claude-rec .rec-reason {
padding-left: 16px;
border-left: 2px solid #722ED1;
margin: 8px 0 12px 0;
font-size: 13px;
color: #722ED1;
font-style: italic;
}
.claude-rec code {
background: var(--bg-tertiary);
padding: 2px 8px;
border-radius: 4px;
font-family: 'SF Mono', Monaco, monospace;
font-size: 13px;
color: var(--color-success);
}
/* Verdict */
.verdict {
background: var(--bg-secondary);
border: 1px solid var(--border);
border-radius: var(--radius-md);
padding: 24px 32px;
margin: 20px 0;
}
.verdict h4 {
color: var(--color-primary);
margin-bottom: 12px;
font-size: 16px;
background: linear-gradient(135deg, var(--color-primary), #722ED1);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.verdict p { color: var(--text-secondary); margin: 6px 0; font-size: 14px; }
.verdict strong { color: var(--text-primary); }
/* Architecture diagram */
.arch-pipeline {
display: flex;
flex-wrap: wrap;
gap: 8px;
align-items: center;
margin: 16px 0;
}
.arch-step {
background: var(--bg-tertiary);
border: 1px solid var(--border);
border-radius: var(--radius-sm);
padding: 8px 16px;
font-size: 13px;
font-family: 'SF Mono', Monaco, monospace;
color: var(--color-primary);
}
.arch-arrow { color: var(--text-secondary); font-size: 18px; }
/* Sources */
.sources {
background: var(--bg-secondary);
border: 1px solid var(--border);
border-radius: var(--radius-md);
padding: 24px 32px;
margin: 40px 0 20px;
}
.sources h2 { color: var(--text-secondary); font-size: 16px; margin-bottom: 12px; }
.sources ul { margin-left: 20px; }
.sources li { margin: 6px 0; font-size: 13px; }
.sources a { color: var(--color-primary); text-decoration: none; }
.sources a:hover { text-decoration: underline; }
/* Language tags */
.lang-tags { display: flex; flex-wrap: wrap; gap: 4px; margin: 8px 0; }
.lang-tag {
display: inline-block;
padding: 2px 8px;
border-radius: 4px;
font-size: 12px;
font-weight: 500;
background: var(--bg-tertiary);
border: 1px solid var(--border);
color: var(--text-secondary);
}
.lang-tag.core {
background: var(--color-success-bg);
border-color: var(--color-success-border);
color: var(--color-success);
}
/* Footer */
.footer {
text-align: center;
padding: 24px 0;
color: var(--text-tertiary);
font-size: 13px;
border-top: 1px solid var(--border);
margin-top: 20px;
}
/* Link */
a { color: var(--color-primary); }
/* Responsive */
@media (max-width: 992px) {
.main { padding: 1.5rem 1.25rem 3rem; }
}
@media (max-width: 768px) {
.sidebar { display: none; }
.main { margin-left: 0; }
.card-grid { grid-template-columns: 1fr; }
.pros-cons { grid-template-columns: 1fr; }
.arch-pipeline { flex-direction: column; }
.arch-arrow { transform: rotate(90deg); }
table, .lang-table { font-size: 12px; }
th, td, .lang-table th, .lang-table td { padding: 6px 8px; }
}
</style>
</head>
<body>
<!-- Header -->
<header class="header">
<h1>代码结构分析工具对比分析</h1>
</header>
<!-- Sidebar -->
<aside class="sidebar">
<div class="toc-label">目录</div>
<nav>
<ol>
<li><a href="#overview">项目总览</a></li>
<li><a href="#comparison">综合对比表</a></li>
<li><a href="#languages">语言支持矩阵</a></li>
<li><a href="#graphify">Graphify 深度分析</a></li>
<li><a href="#codegraphcontext">CodeGraphContext 深度分析</a></li>
<li><a href="#axon">Axon 深度分析</a></li>
<li><a href="#traditional">传统依赖可视化工具</a></li>
<li><a href="#code2kg">code-to-knowledge-graph 简评</a></li>
<li><a href="#claude">Claude 集成建议总览</a></li>
<li><a href="#summary">总结与选型建议</a></li>
</ol>
</nav>
</aside>
<!-- Main content -->
<main class="main">
<!-- 1. Overview -->
<section id="overview">
<h2>1. 项目总览</h2>
<p style="color:var(--text-secondary); margin-bottom:16px;">本次调查聚焦两类工具:<strong>图谱类</strong>(将代码库转化为知识图谱/依赖图)和 <strong>知识库类</strong>(为 AI 助手提供结构化代码上下文)。以下六个项目按星标降序排列。</p>
<div class="card-grid">
<div class="card">
<h3>Graphify</h3>
<span class="repo">safishamsi/graphify</span>
<div class="stars gold">⭐ 35,912</div>
<div><span class="badge badge-python">Python</span><span class="badge badge-mit">MIT</span></div>
<p>面向 AI 编码助手的跨语言知识图谱构建工具。支持 25 种语言 + 多模态文件(文档/图片/视频),71.5 倍 token 压缩率。</p>
<div class="lang-tags">
<span class="lang-tag core">Python</span><span class="lang-tag core">JS/TS</span><span class="lang-tag core">Go</span><span class="lang-tag core">Rust</span><span class="lang-tag core">Java</span><span class="lang-tag core">C/C++</span><span class="lang-tag core">C#</span><span class="lang-tag core">Kotlin</span><span class="lang-tag core">Ruby</span><span class="lang-tag core">PHP</span><span class="lang-tag core">Swift</span><span class="lang-tag core">Scala</span><span class="lang-tag core">Lua</span><span class="lang-tag core">Zig</span><span class="lang-tag core">Elixir</span><span class="lang-tag core">Julia</span><span class="lang-tag core">PowerShell</span><span class="lang-tag core">ObjC</span><span class="lang-tag core">Verilog</span><span class="lang-tag core">Vue</span><span class="lang-tag core">Svelte</span><span class="lang-tag core">Dart</span>
</div>
</div>
<div class="card">
<h3>CodeGraphContext</h3>
<span class="repo">CodeGraphContext/CodeGraphContext</span>
<div class="stars gold">⭐ 3,061</div>
<div><span class="badge badge-python">Python</span><span class="badge badge-mit">MIT</span></div>
<p>将代码仓库索引为可查询图谱,支持 14 种语言,提供 CLI + MCP 双模式和交互式 HTML 可视化。</p>
<div class="lang-tags">
<span class="lang-tag core">Python</span><span class="lang-tag core">JS</span><span class="lang-tag core">TS</span><span class="lang-tag core">Java</span><span class="lang-tag core">C/C++</span><span class="lang-tag core">C#</span><span class="lang-tag core">Go</span><span class="lang-tag core">Rust</span><span class="lang-tag core">Ruby</span><span class="lang-tag core">PHP</span><span class="lang-tag core">Swift</span><span class="lang-tag core">Kotlin</span><span class="lang-tag core">Dart</span><span class="lang-tag core">Perl</span>
</div>
</div>
<div class="card">
<h3>madge</h3>
<span class="repo">pahen/madge</span>
<div class="stars gold">⭐ 10,055</div>
<div><span class="badge badge-js">JavaScript</span><span class="badge badge-mit">MIT</span></div>
<p>经典的 JS/TS 模块依赖可视化工具,即开即用,支持 CSS 预处理器,10k+ 星社区验证。</p>
<div class="lang-tags">
<span class="lang-tag core">JS</span><span class="lang-tag core">TS</span><span class="lang-tag core">Sass</span><span class="lang-tag core">Stylus</span><span class="lang-tag core">Less</span>
</div>
</div>
<div class="card">
<h3>dependency-cruiser</h3>
<span class="repo">sverweij/dependency-cruiser</span>
<div class="stars">⭐ 6,600</div>
<div><span class="badge badge-js">JavaScript</span><span class="badge badge-mit">MIT</span></div>
<p>JS/TS 依赖验证 + 可视化工具,拥有强大的自定义规则引擎,可在 CI/CD 中强制执行架构纪律。</p>
<div class="lang-tags">
<span class="lang-tag core">JS</span><span class="lang-tag core">TS</span><span class="lang-tag core">CoffeeScript</span><span class="lang-tag core">LiveScript</span><span class="lang-tag core">Vue SFC</span><span class="lang-tag core">Svelte</span>
</div>
</div>
<div class="card">
<h3>Axon</h3>
<span class="repo">harshkedia177/axon</span>
<div class="stars">⭐ 674</div>
<div><span class="badge badge-python">Python</span><span class="badge badge-nolicense">无许可证</span></div>
<p>端到端代码智能引擎,12 阶段深度分析管线,交互式 Web 仪表盘 + MCP 集成,分析能力最深入。</p>
<div class="lang-tags">
<span class="lang-tag core">Python</span><span class="lang-tag core">TS/TSX</span><span class="lang-tag core">JS/JSX</span>
</div>
</div>
<div class="card">
<h3>code-to-knowledge-graph</h3>
<span class="repo">Bevel-Software/code-to-knowledge-graph</span>
<div class="stars">⭐ 150</div>
<div><span class="badge badge-kotlin">Kotlin</span><span class="badge badge-mpl">MPL 2.0</span></div>
<p>基于 VS Code LSP 的 Kotlin/JVM 库,可将代码转化为知识图谱,适合作为可嵌入组件集成到 JVM 项目中。</p>
<div class="lang-tags"><span class="lang-tag">取决于 LSP</span></div>
</div>
</div>
</section>
<!-- 2. Comparison Table -->
<section id="comparison">
<h2>2. 综合对比表</h2>
<div class="table-wrap">
<table>
<thead>
<tr>
<th>维度</th>
<th>Graphify</th>
<th>CodeGraphContext</th>
<th>madge</th>
<th>dep-cruiser</th>
<th>Axon</th>
<th>code-to-kg</th>
</tr>
</thead>
<tbody>
<tr><td><strong>星标</strong></td><td class="star-highlight">35,912</td><td>3,061</td><td class="star-highlight">10,055</td><td>6,600</td><td>674</td><td>150</td></tr>
<tr><td><strong>支持语言数</strong></td><td><strong>25 种</strong></td><td>14 种</td><td>6 种</td><td>7 种</td><td>3 种</td><td>取决于 LSP</td></tr>
<tr><td><strong>主要语言</strong></td><td>Python</td><td>Python</td><td>JavaScript</td><td>JavaScript</td><td>Python</td><td>Kotlin</td></tr>
<tr><td><strong>许可证</strong></td><td>MIT</td><td>MIT</td><td>MIT</td><td>MIT</td><td></td><td>MPL 2.0</td></tr>
<tr><td><strong>核心定位</strong></td><td>多模态知识图谱</td><td>通用图谱工具包</td><td>依赖可视化</td><td>依赖验证+可视化</td><td>代码智能引擎</td><td>可嵌入库</td></tr>
<tr><td><strong>可视化输出</strong></td><td>交互式 HTML</td><td>HTML (力导向/层次)</td><td>DOT/SVG</td><td>DOT/Mermaid/HTML</td><td>WebGL 仪表盘</td><td>Neo4j</td></tr>
<tr><td><strong>MCP/AI 集成</strong></td><td>✅ 17+ 平台</td><td>✅ 10+ IDE</td><td></td><td></td><td>✅ Claude/Cursor</td><td></td></tr>
<tr><td><strong>社区检测</strong></td><td>✅ Leiden</td><td></td><td></td><td></td><td>✅ Leiden</td><td></td></tr>
<tr><td><strong>死代码检测</strong></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td><strong>CI/CD 规则验证</strong></td><td></td><td></td><td></td><td>✅ 强大</td><td></td><td></td></tr>
<tr><td><strong>创建时间</strong></td><td>2026-04</td><td>2025-08</td><td>早期</td><td>早期</td><td>2026-02</td><td>2025-05</td></tr>
</tbody>
</table>
</div>
</section>
<!-- 3. Language Support Matrix -->
<section id="languages">
<h2>3. 语言支持详细矩阵</h2>
<h3>3.1 主流编程语言支持</h3>
<div class="table-wrap">
<table class="lang-table">
<thead><tr><th style="text-align:left">语言</th><th>Graphify</th><th>CodeGraphContext</th><th>Axon</th><th>dep-cruiser</th><th>madge</th><th>code-to-kg</th></tr></thead>
<tbody>
<tr class="first-row"><td><strong>Python</strong> (.py)</td><td class="check">✅ AST + 调用图</td><td class="check">✅ 函数/类/继承</td><td class="check">✅ 框架感知入口点</td><td class="cross"></td><td class="cross"></td><td class="partial">取决于 LSP</td></tr>
<tr class="first-row"><td><strong>JavaScript</strong> (.js/.jsx/.mjs/.cjs)</td><td class="check"></td><td class="check"></td><td class="check">✅ 框架感知</td><td class="check">✅ ES6/CJS/AMD</td><td class="check">✅ ES6/CJS/AMD</td><td class="partial">取决于 LSP</td></tr>
<tr class="first-row"><td><strong>TypeScript</strong> (.ts/.tsx)</td><td class="check"></td><td class="check"></td><td class="check">✅ 类型引用分析</td><td class="check">✅ 可跳过类型导入</td><td class="check">✅ 可跳过类型导入</td><td class="partial">取决于 LSP</td></tr>
<tr><td><strong>Go</strong> (.go)</td><td class="check"></td><td class="check"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="partial">取决于 LSP</td></tr>
<tr><td><strong>Rust</strong> (.rs)</td><td class="check"></td><td class="check"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="partial">取决于 LSP</td></tr>
<tr><td><strong>Java</strong> (.java)</td><td class="check">✅ extends/implements</td><td class="check"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="partial">取决于 LSP</td></tr>
<tr><td><strong>C / C++</strong> (.c/.cpp/.h)</td><td class="check"></td><td class="check"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="partial">取决于 LSP</td></tr>
<tr><td><strong>C#</strong> (.cs)</td><td class="check"></td><td class="check"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="partial">取决于 LSP</td></tr>
<tr><td><strong>Ruby</strong> (.rb)</td><td class="check"></td><td class="check"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="partial">取决于 LSP</td></tr>
<tr><td><strong>Kotlin</strong> (.kt)</td><td class="check"></td><td class="check"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="check">✅ (原生)</td></tr>
<tr><td><strong>PHP</strong> (.php)</td><td class="check"></td><td class="check"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="partial">取决于 LSP</td></tr>
<tr><td><strong>Swift</strong> (.swift)</td><td class="check"></td><td class="check"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="partial">取决于 LSP</td></tr>
<tr><td><strong>Dart</strong> (.dart)</td><td class="check"></td><td class="check"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="partial">取决于 LSP</td></tr>
</tbody>
</table>
</div>
<h3>3.2 独有/小众语言支持</h3>
<div class="table-wrap">
<table class="lang-table">
<thead><tr><th style="text-align:left">语言</th><th>Graphify</th><th>CodeGraphContext</th><th>Axon</th><th>dep-cruiser</th><th>madge</th></tr></thead>
<tbody>
<tr><td><strong>Scala</strong> (.scala)</td><td class="check">✅ 独有</td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td></tr>
<tr><td><strong>Lua</strong> (.lua)</td><td class="check">✅ 独有</td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td></tr>
<tr><td><strong>Zig</strong> (.zig)</td><td class="check">✅ 独有</td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td></tr>
<tr><td><strong>PowerShell</strong> (.ps1)</td><td class="check">✅ 独有</td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td></tr>
<tr><td><strong>Elixir</strong> (.ex/.exs)</td><td class="check">✅ 独有</td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td></tr>
<tr><td><strong>Julia</strong> (.jl)</td><td class="check">✅ 独有</td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td></tr>
<tr><td><strong>Objective-C</strong> (.m/.mm)</td><td class="check">✅ 独有</td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td></tr>
<tr><td><strong>Verilog / SV</strong></td><td class="check">✅ 独有</td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td></tr>
<tr><td><strong>Perl</strong> (.pl)</td><td class="cross"></td><td class="check">✅ 独有</td><td class="cross"></td><td class="cross"></td><td class="cross"></td></tr>
<tr><td><strong>CoffeeScript</strong></td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="check">✅ 独有</td><td class="cross"></td></tr>
<tr><td><strong>LiveScript</strong></td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="check">✅ 独有</td><td class="cross"></td></tr>
<tr><td><strong>Vue SFC</strong> (.vue)</td><td class="check"></td><td class="cross"></td><td class="cross"></td><td class="check">✅ Vue2/Vue3</td><td class="cross"></td></tr>
<tr><td><strong>Svelte</strong> (.svelte)</td><td class="check"></td><td class="cross"></td><td class="cross"></td><td class="check">✅ v4</td><td class="cross"></td></tr>
<tr><td><strong>Sass / SCSS</strong></td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="check">✅ 独有</td></tr>
<tr><td><strong>Stylus</strong></td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="check">✅ 独有</td></tr>
<tr><td><strong>Less</strong></td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="cross"></td><td class="check">✅ 独有</td></tr>
<tr><td><strong>多模态文件</strong></td><td class="check">✅ PDF/图片/视频/音频/Office</td><td class="partial">部分 (笔记本)</td><td class="cross"></td><td class="cross"></td><td class="cross"></td></tr>
</tbody>
</table>
</div>
<h3>3.3 各工具语言支持特性对比</h3>
<div class="table-wrap">
<table>
<thead><tr><th>特性</th><th>Graphify</th><th>CodeGraphContext</th><th>Axon</th><th>dep-cruiser</th><th>madge</th></tr></thead>
<tbody>
<tr><td><strong>AST 解析器</strong></td><td>Tree-sitter (本地)</td><td>Tree-sitter</td><td>Tree-sitter</td><td>Acorn + tsc</td><td>dependency-tree</td></tr>
<tr><td><strong>调用图提取</strong></td><td>✅ 跨文件</td><td></td><td>✅ 框架感知</td><td>❌ (仅模块依赖)</td><td>❌ (仅模块依赖)</td></tr>
<tr><td><strong>类型引用分析</strong></td><td></td><td></td><td>✅ 参数/返回值/变量注解</td><td>✅ (可跳过)</td><td>✅ (可跳过)</td></tr>
<tr><td><strong>继承关系</strong></td><td>✅ extends/implements (Java)</td><td>✅ 所有语言</td><td>✅ EXTENDS/IMPLEMENTS</td><td></td><td></td></tr>
<tr><td><strong>内置函数过滤</strong></td><td></td><td></td><td>✅ 138 个内置过滤</td><td></td><td></td></tr>
<tr><td><strong>框架入口点检测</strong></td><td></td><td></td><td>✅ Python: Flask/Django/Click 等</td><td></td><td></td></tr>
<tr><td><strong>文档/注释提取</strong></td><td>✅ docstring + rationale</td><td>✅ 函数签名</td><td></td><td></td><td></td></tr>
</tbody>
</table>
</div>
</section>
<!-- 4. Graphify -->
<section id="graphify">
<h2>4. Graphify 深度分析</h2>
<p>Graphify 是当前星标最高的项目(35,912 ⭐),定位为面向 AI 编码助手的跨语言多模态知识图谱构建工具。其核心创新在于将代码、文档、论文和图片统一到一个可查询的图谱中。</p>
<h3>架构管线(7 阶段)</h3>
<div class="arch-pipeline">
<span class="arch-step">detect</span><span class="arch-arrow"></span>
<span class="arch-step">extract</span><span class="arch-arrow"></span>
<span class="arch-step">build</span><span class="arch-arrow"></span>
<span class="arch-step">cluster</span><span class="arch-arrow"></span>
<span class="arch-step">analyze</span><span class="arch-arrow"></span>
<span class="arch-step">report</span><span class="arch-arrow"></span>
<span class="arch-step">export</span>
</div>
<h3>语言支持详情</h3>
<p>Graphify 通过 Tree-sitter 本地解析支持 <strong>25 种编程语言</strong>,所有语言获得同等对待——不存在一等/实验分级。每种语言均获得:</p>
<ul style="margin-left:20px; color:var(--text-secondary); font-size:0.92rem;">
<li>AST 解析 + 跨文件调用图提取</li>
<li>文档字符串和注释中提取 rationale(<code># NOTE:</code><code># IMPORTANT:</code><code># HACK:</code><code># WHY:</code> 等注释成为独立图谱节点)</li>
<li>Java 额外的 extends/implements 关系提取</li>
</ul>
<p style="color:var(--text-secondary); font-size:0.92rem; margin-top:8px;">此外还支持非代码文件:Markdown/HTML/RST 文档、Office 文档、PDF 论文、PNG/JPG/WEBP/GIF 图片、MP4/MOV 视频、MP3/WAV 音频——这些文件通过 LLM 视觉模型提取语义节点。</p>
<h3>AI 助手集成(17+ 平台)</h3>
<ul style="margin-left:20px; color:var(--text-secondary); font-size:0.92rem;">
<li><strong>Claude Code</strong>:写入 <code>CLAUDE.md</code> 段落 + 安装 <strong>PreToolUse 钩子</strong><code>settings.json</code>),在每次 Glob/Grep 调用前注入图谱上下文</li>
<li><strong>Cursor</strong>:写入 <code>.cursor/rules/graphify.mdc</code><code>alwaysApply: true</code></li>
<li><strong>Kiro</strong>:写入 <code>.kiro/skills/</code> + steering 文件(<code>inclusion: always</code></li>
<li><strong>Google Antigravity</strong>:写入 <code>.agents/rules/</code> + 工作流注册</li>
<li><strong>MCP Server</strong><code>python -m graphify.serve graphify-out/graph.json</code> 提供 <code>query_graph</code><code>get_node</code><code>get_neighbors</code><code>shortest_path</code> 四个工具调用</li>
</ul>
<div class="claude-rec">
<h4>🤖 与 Claude 配合使用建议</h4>
<p><strong>推荐指数:</strong><span style="color:var(--color-warning);">⭐⭐⭐⭐⭐ (最高)</span></p>
<p><strong>使用方式:</strong>安装后运行 <code>/graphify</code> 命令,Graphify 会自动写入 <code>CLAUDE.md</code> 和 PreToolUse 钩子。每次在 Claude Code 中使用 Glob/Grep 搜索文件时,钩子会自动注入图谱上下文。</p>
<div class="rec-reason"><strong>推荐理由:</strong>Graphify 与 Claude 的集成是六个项目中最为深入的——它不仅是一个 MCP 工具,而是通过 CLAUDE.md + PreToolUse 钩子实现了"始终在线"的图谱上下文注入。对于 Claude 编码场景,这意味着:(1)搜索文件时自动获得相关调用图上下文;(2)查询成本降低 71.5 倍(平均 1.7k tokens);(3)25 种语言覆盖,几乎能处理所有项目。这是 Claude 用户的首选方案。</div>
<p><strong>建议命令:</strong><code>graphify ./your-project</code> 构建图谱后,在 Claude Code 中使用 <code>/graphify query "哪些函数调用了 X?"</code><code>/graphify explain ./src/main.py</code></p>
</div>
<div class="pros-cons">
<div class="pros"><h4>优势</h4><ul><li>星标最高,社区关注度最大</li><li>语言支持最广(25 种 + 多模态)</li><li>与 Claude Code 深度集成(CLAUDE.md + 钩子)</li><li>71.5 倍 token 压缩率</li><li>MIT 许可,无遥测数据收集</li><li>模块化 7 阶段管线,可独立扩展</li></ul></div>
<div class="cons"><h4>局限性</h4><ul><li>不自带 LLM,需用户配置 API 密钥</li><li>语义提取依赖外部 LLM API 调用,有成本</li><li>偏向知识图谱生成,非通用图数据库</li><li>创建时间短(2026-04),成熟度待验证</li></ul></div>
</div>
</section>
<!-- 5. CodeGraphContext -->
<section id="codegraphcontext">
<h2>5. CodeGraphContext 深度分析</h2>
<p>CodeGraphContext 是通用代码图谱工具包中语言支持最广的项目(14 种),拥有 3,061 星标和 MIT 许可,提供 CLI + MCP 双模式。</p>
<h3>语言支持详情</h3>
<p>支持 <strong>14 种语言</strong>,所有语言获得"完全支持"——无实验/部分分级。每种语言均提取:</p>
<ul style="margin-left:20px; color:var(--text-secondary); font-size:0.92rem;">
<li>函数、类、方法、参数</li><li>继承关系</li><li>函数调用链</li><li>导入关系</li>
</ul>
<p style="color:var(--text-secondary); font-size:0.92rem; margin-top:8px;">独有语言支持:Perl 仅 CodeGraphContext 支持。还支持 Jupyter Notebooknbformat + nbconvert)。</p>
<h3>核心功能</h3>
<ul style="margin-left:20px; color:var(--text-secondary); font-size:0.92rem;">
<li><strong>多数据库后端</strong>KuzuDBWindows 默认)、FalkorDBUnix 默认)、Neo4j(远程/Docker</li>
<li><strong>预索引包</strong>:加载 .cgc 包可即时索引知名仓库</li>
<li><strong>实时文件监视</strong>cgc watch 自动更新图谱</li>
<li><strong>自动 MCP 配置</strong>cgc mcp setup 向导支持 10 种 IDE</li>
</ul>
<div class="claude-rec">
<h4>🤖 与 Claude 配合使用建议</h4>
<p><strong>推荐指数:</strong><span style="color:var(--color-warning);">⭐⭐⭐⭐</span></p>
<p><strong>使用方式:</strong>运行 <code>python -m codegraphcontext mcp setup</code>,选择 Claude,自动生成 MCP 配置。之后可用自然语言查询代码关系。</p>
<div class="rec-reason"><strong>推荐理由:</strong>CodeGraphContext 的优势在于 14 种语言支持和多数据库后端。适合多语言项目(如同时使用 Python + Go + Rust 的项目)。其 MCP 工具支持自然语言查询("什么函数调用了 X?"、"显示 Y 的继承层次"),对 Claude 很友好。缺点是缺少深度分析能力(无执行流追踪、无社区检测),如果只需要基本的代码关系查询和可视化,这是性价比最高的选择。</div>
<p><strong>建议场景:</strong>多语言项目中快速查询函数调用关系、类继承层次、发现死代码</p>
</div>
<div class="pros-cons">
<div class="pros"><h4>优势</h4><ul><li>14 种语言覆盖广</li><li>MIT 许可,社区成熟(3,061 ⭐)</li><li>多数据库后端灵活适配</li><li>完善的 CI/CD(测试 + E2E</li><li>自动 MCP 配置向导</li></ul></div>
<div class="cons"><h4>局限性</h4><ul><li>开放 Issues 高达 179 个</li><li>缺少深度分析能力</li><li>功能相对基础</li><li>依赖外部数据库时部署复杂度增加</li></ul></div>
</div>
</section>
<!-- 6. Axon -->
<section id="axon">
<h2>6. Axon 深度分析</h2>
<p>Axon 是功能最深入的代码智能引擎,拥有 12 阶段深度分析管线,虽然星标较少(674),但分析能力远超其他项目。</p>
<h3>语言支持详情</h3>
<p>仅支持 <strong>3 种语言</strong>Python、TypeScript、JavaScript),但分析深度远超同类:</p>
<ul style="margin-left:20px; color:var(--text-secondary); font-size:0.92rem;">
<li><strong>Python 框架感知</strong>:自动检测 <code>@app.route</code><code>@router.get</code><code>@click.command</code><code>test_*</code><code>__main__</code> 等入口点</li>
<li><strong>JS/TS 框架感知</strong>:自动检测 Express handlers、导出函数、handler/middleware 模式</li>
<li><strong>死代码检测</strong>:框架感知的多轮分析,豁免入口点、装饰器、Protocol 一致性</li>
<li><strong>内置函数过滤</strong>138 个黑名单条目(<code>print</code><code>len</code><code>console</code><code>fetch</code><code>useState</code> 等)</li>
<li><strong>类型分析</strong>:从参数、返回值、变量注解中提取类型引用</li>
<li><strong>Git 变更耦合</strong>:分析 6 个月 Git 历史,发现静态分析遗漏的依赖</li>
</ul>
<h3>AI 助手集成</h3>
<ul style="margin-left:20px; color:var(--text-secondary); font-size:0.92rem;">
<li>MCP 工具:<code>axon_query</code>(混合搜索)、<code>axon_context</code>360° 符号视图)、<code>axon_impact</code>(影响范围)、<code>axon_dead_code</code></li>
<li>每个工具响应自带<strong>下一步建议</strong>(如 "Next: Use context() on a specific symbol"</li>
<li>资源:<code>axon://overview</code><code>axon://dead-code</code><code>axon://schema</code></li>
</ul>
<div class="claude-rec">
<h4>🤖 与 Claude 配合使用建议</h4>
<p><strong>推荐指数:</strong><span style="color:var(--color-warning);">⭐⭐⭐⭐ (特定场景最高)</span></p>
<p><strong>使用方式:</strong>运行 <code>axon serve --watch</code> 启动 MCP 服务,然后 <code>axon setup --claude</code> 配置 Claude MCP。</p>
<div class="rec-reason"><strong>推荐理由:</strong>如果你主要使用 Python/TypeScriptAxon 是分析深度最高的选择。它的框架感知入口点检测、执行流追踪、Git 变更耦合分析都是独有功能。MCP 工具响应自带下一步建议提示,对 Claude 的 agentic workflow 非常友好。适合需要深度代码理解、影响范围评估和死代码检测的场景。局限性是仅支持 3 种语言且无开源许可证。</div>
<p><strong>建议场景:</strong>Python/TS 项目的重构前影响分析、死代码清理、架构审计</p>
</div>
<div class="pros-cons">
<div class="pros"><h4>优势</h4><ul><li>分析能力最全面深入</li><li>交互式 Web UI 体验优秀</li><li>框架感知的入口点和死代码检测</li><li>Git 历史耦合分析独有</li><li>MCP 工具响应自带下一步建议</li></ul></div>
<div class="cons"><h4>局限性</h4><ul><li>仅支持 3 种语言(Python/TS/JS</li><li>无开源许可证</li><li>星标 674,社区验证不足</li><li>创建时间新(2026-02),成熟度待观察</li></ul></div>
</div>
</section>
<!-- 7. Traditional Tools -->
<section id="traditional">
<h2>7. 传统依赖可视化工具</h2>
<p style="color:var(--text-secondary); margin-bottom:16px;">madge 和 dependency-cruiser 是 JS/TS 生态中最成熟的两个依赖可视化工具,分别代表了"快速可视化"和"规则验证"两个方向。</p>
<h3>语言支持详情</h3>
<div class="table-wrap">
<table>
<thead><tr><th>维度</th><th>madge (⭐ 10,055)</th><th>dependency-cruiser (⭐ 6,600)</th></tr></thead>
<tbody>
<tr><td><strong>核心定位</strong></td><td>依赖可视化 + 分析</td><td>依赖验证 + 可视化(规则引擎)</td></tr>
<tr><td><strong>JS 模块格式</strong></td><td>AMD / CommonJS / ES6</td><td>ES6 / CommonJS / AMD</td></tr>
<tr><td><strong>TS 支持</strong></td><td>需 tsConfig 配置路径解析</td><td>支持 --ts-pre-compilation-deps</td></tr>
<tr><td><strong>CSS 预处理器</strong></td><td><strong></strong> Sass/Stylus/Less</td><td></td></tr>
<tr><td><strong>Vue / Svelte</strong></td><td></td><td>✅ Vue2/Vue3 + Svelte v4</td></tr>
<tr><td><strong>CI/CD 集成</strong></td><td>弱(仅报告)</td><td><strong></strong>(类 eslint 规则验证)</td></tr>
<tr><td><strong>输出格式</strong></td><td>DOT / SVG / JSON</td><td>DOT / Mermaid / JSON / CSV / HTML / 文本</td></tr>
<tr><td><strong>自定义规则</strong></td><td>不支持</td><td><strong>支持</strong>(精细 from/to 路径规则)</td></tr>
<tr><td><strong>Webpack 别名</strong></td><td>支持</td><td>支持</td></tr>
<tr><td><strong>动态 import</strong></td><td></td><td>✅(静态字符串参数)</td></tr>
<tr><td><strong>JSDoc @import</strong></td><td></td><td>✅ detectJSDocImports</td></tr>
<tr><td><strong>开放 Issues</strong></td><td>122</td><td>36</td></tr>
</tbody>
</table>
</div>
<div class="claude-rec">
<h4>🤖 与 Claude 配合使用建议</h4>
<p><strong>推荐指数:</strong><span style="color:var(--color-warning);">⭐⭐⭐ (JS/TS 项目专用)</span></p>
<p><strong>使用方式:</strong>这两个工具均无 MCP/AI 集成。与 Claude 配合时,建议在 Claude 的 prompt 中要求生成 madge/dep-cruiser 命令,然后查看输出的 SVG/HTML 文件。</p>
<div class="rec-reason"><strong>推荐理由:</strong>这两个工具适合纯 JS/TS 项目。madge 适合快速查看依赖图和循环依赖;dependency-cruiser 适合在 CI/CD 中强制执行架构规则。它们没有 AI 集成,但在 JS/TS 生态中是最成熟、最稳定的选择。如果你的项目仅使用 JS/TS,这两个工具仍然是值得保留的。</div>
</div>
</section>
<!-- 8. code2kg -->
<section id="code2kg">
<h2>8. code-to-knowledge-graph 简评</h2>
<p>基于 VS Code LSP 的 Kotlin/JVM 库,星标 150,最近推送在 2025-06(已近 10 个月未更新)。</p>
<div class="pros-cons">
<div class="pros"><h4>优势</h4><ul><li>基于 VS Code LSP,理论上语言覆盖广</li><li>Kotlin/JVM 生态,适合 Java 项目集成</li><li>架构为可扩展库,可嵌入其他应用</li><li>MinHashing 代码相似度分析(独有功能)</li></ul></div>
<div class="cons"><h4>局限性</h4><ul><li>已近 10 个月未更新,活跃度极低</li><li>不支持 MCP 集成</li><li>无独立 CLI,依赖 VS Code 扩展</li><li>缺少深度分析功能</li><li>依赖 VS Code 实例,资源开销大</li></ul></div>
</div>
<div class="claude-rec">
<h4>🤖 与 Claude 配合使用建议</h4>
<p><strong>推荐指数:</strong><span style="color:var(--color-warning);">⭐⭐ (不推荐)</span></p>
<div class="rec-reason"><strong>不推荐理由:</strong>无 MCP 集成、不活跃维护、无 CLI 工具,无法与 Claude 形成自动化工作流。仅在对 JVM 生态有特定嵌入需求时考虑。</div>
</div>
<p style="color:var(--text-secondary); font-size:0.88rem; margin-top:12px;">该项目目前更适合对 JVM 生态有特定嵌入需求的场景,不作为通用推荐。</p>
</section>
<!-- 9. Claude Integration Overview -->
<section id="claude">
<h2>9. Claude 集成建议总览</h2>
<p style="color:var(--text-secondary); margin-bottom:16px;">以下按使用场景推荐最适合与 Claude Code 配合的工具及集成方式。</p>
<div class="table-wrap">
<table>
<thead><tr><th>场景</th><th>推荐工具</th><th>集成方式</th><th>理由</th></tr></thead>
<tbody>
<tr><td><strong>通用多语言项目</strong><br>3+ 种语言)</td><td><strong>Graphify</strong></td><td><code>CLAUDE.md</code> + PreToolUse 钩子</td><td>25 种语言覆盖,钩子自动注入图谱上下文,搜索时获得调用图</td></tr>
<tr><td><strong>纯 Python/TS 项目</strong><br>深度分析 + 重构</td><td><strong>Axon</strong></td><td>MCP Server + <code>axon setup --claude</code></td><td>框架感知入口点、执行流追踪、死代码检测、影响范围分析</td></tr>
<tr><td><strong>快速查询代码关系</strong><br>(调用链、继承、死代码)</td><td><strong>CodeGraphContext</strong></td><td>MCP Server + <code>cgc mcp setup</code></td><td>14 种语言、自然语言查询、多数据库后端</td></tr>
<tr><td><strong>JS/TS 项目架构治理</strong><br>CI/CD 规则验证)</td><td><strong>dependency-cruiser</strong></td><td>CI/CD 规则文件</td><td>精细 from/to 路径规则,类 eslint 集成,Mermaid/HTML 输出</td></tr>
<tr><td><strong>JS/TS 快速依赖检查</strong></td><td><strong>madge</strong></td><td>CLI 命令</td><td>即开即用,SVG 依赖图,CSS 预处理器支持</td></tr>
<tr><td><strong>降低 Claude 上下文 token 成本</strong></td><td><strong>Graphify</strong></td><td>MCP Server 模式</td><td>71.5 倍压缩率(123k → 1.7k tokens/查询)</td></tr>
</tbody>
</table>
</div>
<h3>集成优先级建议</h3>
<div class="verdict">
<h4>第一优先级(立即安装)</h4>
<p><strong>Graphify</strong> — 如果你使用 Claude Code 且项目涉及多种语言。安装后自动获得 CLAUDE.md + 钩子集成,搜索文件时自动获得调用图上下文。多模态支持还能帮你理解文档和论文与代码的关系。</p>
</div>
<div class="verdict">
<h4>第二优先级(按需安装)</h4>
<p><strong>Axon</strong> — 如果你的主要工作是 Python/TS 项目的重构和死代码清理。它的框架感知分析和 Git 变更耦合是独有功能,能帮你在重构前评估影响范围。</p>
<p><strong>CodeGraphContext</strong> — 如果你需要覆盖 Graphify 不支持的 Perl 语言,或需要多数据库后端(Neo4j 等)的企业级部署。</p>
</div>
<div class="verdict">
<h4>第三优先级(可选保留)</h4>
<p><strong>madge</strong> / <strong>dependency-cruiser</strong> — 仅在纯 JS/TS 项目中有价值。Graphify 已覆盖 JS/TS 的 AST 分析,这两个工具在 CI/CD 规则验证和 CSS 预处理器支持方面仍有不可替代的场景。</p>
</div>
</section>
<!-- 10. Summary -->
<section id="summary">
<h2>10. 总结与选型建议</h2>
<div class="verdict">
<h4>场景一:AI 编码助手的知识图谱集成</h4>
<p><strong>推荐 Graphify</strong> — 25 种语言 + 多模态、71.5 倍 token 压缩、CLAUDE.md + PreToolUse 钩子自动注入上下文。Claude 用户的首选方案。</p>
</div>
<div class="verdict">
<h4>场景二:多语言项目的通用代码图谱</h4>
<p><strong>推荐 CodeGraphContext</strong> — 14 种语言、MIT 许可、多数据库后端、成熟的 CI/CD。适合覆盖 Graphify 不支持的语言(如 Perl)或需要 Neo4j 等外部数据库的场景。</p>
</div>
<div class="verdict">
<h4>场景三:深度代码分析与影响评估</h4>
<p><strong>推荐 Axon</strong> — 12 阶段管线、框架感知入口点、执行流追踪、Git 变更耦合。适合 Python/TS 项目的重构前影响分析和死代码检测。</p>
</div>
<div class="verdict">
<h4>场景四:JS/TS 项目的架构治理</h4>
<p><strong>推荐 dependency-cruiser</strong> — 自定义规则引擎 + CI/CD 集成,可在构建流程中强制架构纪律。快速查看则选 <strong>madge</strong>(支持 CSS 预处理器)。</p>
</div>
<div class="verdict">
<h4>趋势总结</h4>
<p>2025-2026 年代码结构工具的核心趋势:<strong>知识图谱 + AI 助手集成(MCP</strong> 成为新方向。传统工具(madge/dependency-cruiser)侧重依赖可视化与验证,新一代工具(Graphify/CodeGraphContext/Axon)则将代码转化为可查询的图谱,为 AI 编码助手提供结构化上下文。Tree-sitter 静态分析 + 图数据库 + Leiden 社区检测 是当前最主流的技术组合。</p>
</div>
</section>
<!-- Sources -->
<div class="sources">
<h2>数据来源</h2>
<ul>
<li><a href="https://github.com/safishamsi/graphify" target="_blank">safishamsi/graphify - GitHub</a></li>
<li><a href="https://graphify.net/" target="_blank">graphify.net - 官方网站</a></li>
<li><a href="https://github.com/CodeGraphContext/CodeGraphContext" target="_blank">CodeGraphContext/CodeGraphContext - GitHub</a></li>
<li><a href="https://github.com/harshkedia177/axon" target="_blank">harshkedia177/axon - GitHub</a></li>
<li><a href="https://github.com/sverweij/dependency-cruiser" target="_blank">sverweij/dependency-cruiser - GitHub</a></li>
<li><a href="https://github.com/pahen/madge" target="_blank">pahen/madge - GitHub</a></li>
<li><a href="https://github.com/Bevel-Software/code-to-knowledge-graph" target="_blank">Bevel-Software/code-to-knowledge-graph - GitHub</a></li>
<li><a href="https://github.com/topics/code-visualization" target="_blank">GitHub Topics: code-visualization</a></li>
<li><a href="https://github.com/topics/graph-visualization" target="_blank">GitHub Topics: graph-visualization</a></li>
<li><a href="https://githubnext.com/projects/repo-visualization/" target="_blank">GitHub Next: Repo Visualization</a></li>
</ul>
</div>
</main>
<!-- Footer -->
<div class="footer">
<p>调查报告生成于 2026-04-27 | 数据来源:GitHub API 及项目页面</p>
</div>
<script>
// Sidebar active link tracking
const links = document.querySelectorAll('.sidebar nav a');
const sections = document.querySelectorAll('.main section, .main .sources');
function setActive() {
let current = '';
sections.forEach(s => {
if (s.getBoundingClientRect().top < 120) current = s.id;
});
links.forEach(a => {
a.classList.toggle('active', a.getAttribute('href') === '#' + current);
});
}
links.forEach(a => {
a.addEventListener('click', e => {
e.preventDefault();
const target = document.querySelector(a.getAttribute('href'));
if (target) target.scrollIntoView();
});
});
window.addEventListener('scroll', setActive, { passive: true });
setActive();
</script>
</body>
</html>