Duster 配置完全手册include、exclude、scripts 与 processTimeout 全解析【免费下载链接】dusterAutomatic configuration for Laravel apps to apply Tightens standard linting code standards.项目地址: https://gitcode.com/gh_mirrors/du/dusterDuster 是一款专为 Laravel 应用打造的代码规范 linting 工具可自动应用 Tighten 团队默认的 PHP 代码风格。它的核心配置全部集中在项目根目录的duster.json文件中通过include、exclude、scripts和processTimeout四个关键字段你可以精确控制 Duster 检查哪些文件、跳过哪些文件、追加哪些自定义脚本以及脚本运行的超时时间。本文带你一次性掌握 Duster 配置的完整用法。快速上手安装 Duster 并运行首次检查使用 Composer 一行命令安装 Dustercomposer require tightenco/duster --dev安装完成后两条命令即可分别完成检查与自动修复./vendor/bin/duster lint # 检查所有代码问题 ./vendor/bin/duster fix # 自动修复所有可修复的问题当你需要更精细的控制时只需在项目根目录创建duster.json配置文件。Duster 启动时会自动读取该文件加载逻辑位于 app/Support/DusterConfig.php 的loadLocal()方法中——如果文件不是合法的 JSONDuster 会直接报错提示这一点在配置时务必注意。配置 include精确指定 Duster 检查哪些目录include字段以数组形式列出需要检查的目录或文件只会被其中包含的 PHP 文件处理。Duster 默认只识别这几种后缀.php、.php.inc、.php.stub、.php.skeleton见 DusterConfig.php。一个典型的 Laravel 项目配置如下{ include: [ bin, scripts, src, tests ] }小贴士include支持通配符写法。例如**/Include2/**可以递归匹配任意层级下的Include2目录。官方测试用例 tests/Fixtures/DusterConfigWildcard/duster.json 就演示了通配符 include/exclude 的实际效果扩展实现位于 DusterConfig.php 的expandWildcards()方法。配置 exclude跳过不想被检查的文件exclude字段用于排除测试夹具、生成文件等不希望 Duster 介入的内容。Duster 内置了一份默认排除列表DusterConfig.php 中的$defaultExclude已经自动包含默认排除项说明vendor/Composer 依赖目录node_modules/前端依赖目录storage/运行时存储目录bootstrap/cache/框架缓存目录build/构建产物目录_ide_helper.php等IDE 辅助文件tests/Pest.phpPest 测试框架引导文件⚠️注意这些路径会被自动排除你在exclude里再写一遍vendor或node_modules是多余的Duster 会直接过滤掉这类重复项。实际项目中通常只需排除测试夹具即可{ exclude: [ tests/Fixtures ] }exclude同样支持通配符比如**/folderToExclude/**可排除任意深度的指定文件夹。Duster 自身仓库的配置 duster.json 就是很好的参考范例。配置 scripts让 Duster 顺带运行你的自定义脚本这是 Duster 最强大的能力之一——它不仅能跑内置的 TLint、PHP_CodeSniffer、PHP CS Fixer 和 Pint还能把你的 PHPStan、Pest 等任意脚本编排进统一的 lint / fix 流程。在scripts下按lint和fix两个分组声明键是脚本名称值是命令参数数组{ scripts: { lint: { phpstan: [./vendor/bin/phpstan, analyse], pest: [./vendor/bin/pest] } } }之后运行duster lint时这些脚本会被自动执行某个脚本失败会导致整体流程失败非常适合接入 CI。如果你只想运行指定工具可以用--using参数按名称挑选并控制执行顺序./vendor/bin/duster lint --usingphpstan,tlint,pint脚本的执行与超时处理逻辑见 app/Support/UserScript.php。配置 processTimeout自定义脚本超时时间自定义脚本默认在60 秒后超时。如果你的 PHPStan 分析或 Pest 测试跑得比较久可以用processTimeout字段单位秒覆盖默认值{ processTimeout: 120 }⏱️ 如果超时发生Duster 会打印友好的提示信息直接告诉你可以用 duster.json 中的 processTimeout 键来覆盖此超时无需翻文档就能定位问题。完整配置示例四字段一次配齐把前面四部分内容组合起来就是一份功能齐全的duster.json{ include: [ app, config, tests ], exclude: [ tests/Fixtures ], scripts: { lint: { PHPStan: [./vendor/bin/phpstan, analyse] } }, processTimeout: 120 }这份配置的来源正是 Duster 仓库自身的 duster.json可直接复制后按项目结构调整。新手常见疑问 必须创建 duster.json 吗不是。不创建时 Duster 使用内置的默认行为创建后即可获得目录级、脚本级的完全控制权。通配符怎么写使用标准的 glob 语法如**/folder/**路径分隔符统一用/Windows 下也会被自动兼容。为什么我加了 exclude 的 vendor 没生效因为vendor/本就在默认排除列表中无需重复配置。如何验证配置是否生效运行./vendor/bin/duster lint观察输出的文件列表即可确认 include/exclude 是否符合预期参考测试 tests/Feature/DusterConfigTest.php 中的验证方式。掌握include、exclude、scripts与processTimeout这四个字段你就拥有了 Duster 的全部配置能力——从此一条命令让团队的 Laravel 代码风格保持一致。【免费下载链接】dusterAutomatic configuration for Laravel apps to apply Tightens standard linting code standards.项目地址: https://gitcode.com/gh_mirrors/du/duster创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考