dependency cruiser 是唯一值得装的 js/ts 依赖分析扩展,它解析源码 import/require 构建真实模块图,支持 ci、循环检测、跨层调用拦截,结果稳定可验证;codegraph 易误报且方向反,npm explorer 仅展示包级列表且升级不安全。

直接用 Dependency Cruiser,别选其他“树形展示”类插件——它能真正静态分析 import 关系,生成可验证的依赖图,且支持 CI 集成。
Dependency Cruiser 是唯一值得装的 JS/TS 依赖分析扩展
它不是简单读取 package.json 或渲染 node_modules 目录,而是解析源码中的 import/require 语句,构建真实的模块引用图。很多标榜“依赖树”的插件(比如 npm Explorer)只做包级列表,根本看不到 src/utils/api.ts → src/lib/auth.ts 这种内部模块链。
- 安装后需在项目根目录运行
npx depcruise --init生成配置,否则默认不检查循环依赖 - 命令
npx depcruise --output-type dot src | dot -Tsvg > deps.svg可导出 SVG 图,VSCode 内置预览器就能打开 - 配合
.dependency-cruiser.js中的forbidden规则,能强制拦截跨层调用(如ui/直接 importdata/下的私有工具) - 它不依赖 VSCode 的“活动文件”上下文——整个项目扫描一次,结果稳定,不会因你刚编辑了哪个文件而漏掉路径
CodeGraph 能看符号级调用,但对 JS 项目容易误报
CodeGraph 适合 TS 项目或已配好 tsconfig.json 的 JS 项目,它靠 TypeScript 语言服务提取符号关系。但纯 JS 项目若没开 checkJs: true 和 jsconfig.json,它常把动态 require()、import() 当作未定义,或把同名变量当成交互点。
DMap GL地图JSAPI(dmapgl)开发指南。用于编写、审查、调试 DMap 地图 API 代码,涵盖地图初始化、覆盖物渲染、图层管理、事件处理、控件交互等任务。当用户提及 dmap、dmapgl、jsapi‑gl 或相关地图开发需求时自动触发。
- 启用前先确认项目有
jsconfig.json,且包含"checkJs": true和"maxNodeModuleJsDepth": 2 - 右键某个函数选 “Show Dependencies” 时,它显示的是“谁调用了我”,不是“我依赖了谁”——方向反了,容易搞混
- 导出的
graph.json里没有版本号字段,无法和npm ls对齐,排查兼容性问题时得切回终端
别信 npm Explorer 的“可视化更新”按钮
它侧边栏里点一下就执行 npm install,看似方便,但会跳过 package-lock.json 的完整性校验,且完全无视 peerDependencies 是否满足。你点完“升级 react”,实际可能装上一个不兼容的 react-dom 版本。
- 它默认不显示
devDependencies,除非你在设置里手动开启npmExplorer.showDevDependencies - 右键包名选 “View on npm” 打开的是网页,不是本地
node_modules/react/package.json,没法快速查exports字段 - 真正要更新,还是得先跑
npm outdated --long看WantedvsLatest,再决定用npm install react@18.3.1还是npm update react
依赖图不是越花哨越好,关键得能回答具体问题:这个工具函数被多少地方用了?utils/ 文件夹能不能删?legacy/ 模块是否还在被新代码引用?Dependency Cruiser 的 CLI 输出带 exit code,能塞进 pre-commit hook;CodeGraph 的图好看但难自动化;npm Explorer 则连“当前文件导入了哪些模块”这种基础问题都答不全。别为了点几下就出图,放弃可验证的依据。










