Validate and visualize dependencies. Your rules. JavaScript, TypeScript, CoffeeScript. ES6, CommonJS, AMD.
Dependency cruiser

验证和可视化依赖关系。按照您的规则。 JavaScript、TypeScript、CoffeeScript。ES6、CommonJS、AMD。
它能做什么?

它会遍历任何 JavaScript、TypeScript、LiveScript 或 CoffeeScript 项目中的依赖关系,并...
- ...根据(您自己的)规则** 验证**它们
- ...** 报告**违反的规则
- 文本形式(用于构建过程)
- 图形形式(直观查看)
作为附加功能,它可以生成多种输出格式的依赖关系图,包括可以贴在墙上向您的奶奶炫耀的** 酷炫可视化效果**。
如何使用?
安装它...
npm install --save-dev dependency-cruiser
# or
yarn add -D dependency-cruiser
pnpm add -D dependency-cruiser
... 并生成配置
npx depcruise --init
这会在你的环境中稍作探查,询问你一些问题,然后创建一个适合你项目的 .dependency-cruiser.js 配置文件[1][2]。
简单直观,老少咸宜
要创建 src 文件夹中依赖关系的图表,你可以使用输出类型为 dot 的 dependency-cruiser,并对结果运行 GraphViz dot[3]。一行命令即可完成:
npx depcruise src --include-only "^src" --output-type dot | dot -T svg > dependency-graph.svg
dependency-cruiser v12 及更早版本:添加 --config 选项
虽然在 dependency-cruiser v13 及更高版本中无需此操作,但在 v12 及更早版本中,您必须传递 --config 选项才能让它找到 .dependency-cruiser.js 配置文件:
npx depcruise src --include-only "^src" --config --output-type dot | dot -T svg > dependency-graph.svg
- 您可以在命令行界面文档中了解有关
--include-only和其他命令行选项的更多用法。 - 真实世界示例 包含了 npm 上一些最常用项目的依赖关系巡航结果。
- 如果您更倾向于
mermaid、json、csv、html或纯文本等格式,我们也为您提供了支持。
验证内容
声明一些规则
当您在上面运行 depcruise --init 时,该命令还会向 .dependency-cruiser.js 中添加一些在大多数项目中都有用的规则,例如检测循环依赖、缺失于 package.json 中的依赖、孤立文件以及生产代码依赖 devDependencies 或 optionalDependencies 的情况。
通过调整该文件开始添加您自己的规则。
示例规则:
{
"forbidden": [
{
"name": "not-to-test",
"comment": "don't allow dependencies from outside the test folder to test",
"severity": "error",
"from": { "pathNot": "^test" },
"to": { "path": "^test" }
}
]
}
报告问题
npx depcruise src
dependency-cruiser v12 及更早版本:添加 --config 选项
虽然在 dependency-cruiser v13 及以上版本中无需此操作,但在 v12 及更早版本中,您必须传递 --config 选项才能让它找到 .dependency-cruiser.js 配置文件:
npx depcruise --config .dependency-cruiser.js src
这将根据您的规则进行验证,并以类似 eslint 的格式显示任何违规情况:

还有更多验证报告方式;可以生成图表(如本 README 顶部的图表)或独立的 html 文件。
- 有关 err、dot、csv 和 html 报告器的更多信息,请参阅 命令行界面 文档。
- dependency-cruiser 在其自身的构建过程中使用自身进行检查;
请参见
package.json
中的
depcruise脚本。
我想了解更多!
您来对地方了 😃:
- 使用方法
- 开发 dependency-cruiser
- 其他内容
许可协议
致谢
- Marijn Haverbeke 以及所有参与 acorn 项目的贡献者——dependency-cruiser 使用这款优秀的 JavaScript 解析器来推断依赖关系。
- unDraw 的 Katerina Limpitsouni,为 dependency-cruiser 的社交媒体图片提供了 Ollie 形象。
- 所有开源社区成员,感谢你们热心提出问题、参与讨论并提交代码,帮助 dependency-cruiser 不断完善。
构建状态
用 🤘 打造于荷兰。
为方便起见,我们在示例脚本中使用
npx。当你在package.json的脚本中使用这些命令时,无需在它们前面加上npx。 ↩︎如果你不想使用
npx,而是想使用pnpx(来自pnpm包管理器)或yarn,请参考相应工具的文档。特别是pnpx,其语义与npx有很大不同,在使用前你需要了解这些差异。不过,在此期间:即使你使用npm以外的包管理器安装依赖,npx也应该能正常工作。 ↩︎这假设系统中已安装 GraphViz 的
dot命令——在大多数 Linux 及类似系统上通常会预装。如果未安装,请参阅 GraphViz 下载页面 了解如何在您的计算机上安装它。 ↩︎
Introduction
验证并可视化依赖关系。您的规则。支持JavaScript、TypeScript、CoffeeScript。兼容ES6、CommonJS、AMD。【此简介由AI生成】
Customize your domain