如何玩转 Duster 通配符路径匹配:自定义 include/exclude 规则终极指南
如何玩转 Duster 通配符路径匹配自定义 include/exclude 规则终极指南【免费下载链接】dusterAutomatic configuration for Laravel apps to apply Tightens standard linting code standards.项目地址: https://gitcode.com/gh_mirrors/du/dusterDuster 是一款专为 Laravel 应用打造的自动代码规范工具能一键应用 Tighten 团队的标准 Linting 规则。对于大型项目你往往只想检查app和tests目录或跳过某个模块——这正是 Duster 的include/exclude 通配符路径匹配大显身手的地方。本文带你从零掌握通配符写法精准控制 Duster 扫描哪些文件。先认识 duster.json 配置文件Duster 在运行时会自动读取项目根目录下的duster.json通过include只检查这些路径和exclude跳过这些路径两个数组来限定扫描范围。你可以参考 Duster 项目自己的配置文件 duster.json{ include: [app, config, standards, tests], exclude: [tests/Fixtures] }include是白名单一旦填写只有列出的路径会被检查exclude是黑名单在默认扫描范围内剔除指定路径。两者可以组合使用。通配符语法3 个模式必须掌握Duster 的 include/exclude 支持 glob 通配符由 DusterConfig.php 中的expandWildcards和globPath方法实现最常用的有 3 种模式含义示例目录名精确匹配整个目录app**/目录名/**匹配任意深度下的同名目录**/vendor/***.php/ 具体文件名匹配单个文件或后缀IncludeClass.php举一个真实的通配符用例来自官方测试夹具 DusterConfigWildcard/duster.json{ include: [**/Include2/**], exclude: [**/Exclude2/**] }这里的**表示任意层级的目录所以无论Include2出现在第几层都会被纳入检查而Exclude2无论在多深的嵌套里都会被跳过。对应的效果验证可以看 DusterConfigWildcardTest.php被排除的ExcludeClass.php不会出现在 Lint 报告中。匹配机制的几个小细节自动过滤 PHP 文件通配符展开后只会保留.php、.php.inc、.php.stub、.php.skeleton后缀的文件见 DusterConfig.php所以不用自己写**/*.php。路径分隔符随便写Windows 反斜杠会自动转换为正斜杠配置在跨平台团队中更安全。尾部的/或/*会被自动清理写tests/和tests效果一样。5 个实战场景的 include/exclude 写法场景 1只检查核心目录{ include: [app, tests] }场景 2排除测试夹具和生成代码Duster 官方写法{ exclude: [tests/Fixtures] }场景 3排除任意深度下的某个模块{ exclude: [**/legacy/**] }场景 4精确包含单个脚本文件{ include: [bin/deploy.php] }场景 5只放行某一层目录{ include: [app/Modules] }避坑指南这些路径 Duster 永远跳过即使你不写Duster 也内置了一份默认排除清单DusterConfig.php 的$defaultExclude包括vendor/、node_modules/、storage/、bootstrap/cache/、build/、tests/Pest.php以及_ide_helper*.php等 IDE 辅助文件。其中vendor 和 node_modules 是强制排除的无法被配置覆盖——这是为了防止误扫海量依赖代码拖慢执行速度。写完后如何快速验证规则生效配置改完直接用 lint 命令验证完整用法见 README.md./vendor/bin/duster lint ./vendor/bin/duster fix如果只想检查 Git 中有未提交改动的文件加上--dirty选项即可适合开发中快速反馈./vendor/bin/duster lint --dirty输出中如果看到被排除文件的报错消失、被包含的文件正常出现在报告里说明你的通配符规则已经配置成功。✨小结duster.json的include是白名单、exclude是黑名单支持 glob 通配符**可匹配任意层级目录是排除深层嵌套模块的利器PHP 文件过滤和vendor/、node_modules/等默认排除是自动生效的无需重复配置改完配置用duster lint立即验证养成配置即验证的习惯掌握这些技巧后无论项目结构多复杂你都能让 Duster 的扫描范围精准可控既提速又不漏检。【免费下载链接】dusterAutomatic configuration for Laravel apps to apply Tightens standard linting code standards.项目地址: https://gitcode.com/gh_mirrors/du/duster创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考