尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Duster 配置完全手册:include、exclude、scripts 与 processTimeout 全解析
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),仅供参考
RELATED

相关推荐

Gin性能优化与压测调优从百QPS到万QPS的实战之路

Gin性能优化与压测调优从百QPS到万QPS的实战之路

Gin性能优化与压测调优从百QPS到万QPS的实战之路 文章导语 Gin以高性能著称,但高并发下,业务逻辑的优化比框架更重要。DB查询优化、缓存策略、JSON序列化、goroutine管理——这些都是决定服务QPS上限的关键。本文通过实际压测案例,带你完成性…

📅 2026/10/8 13:03:17
如何从零构建并运行vaststars?luamake编译到跑通第一屏的完整教程

如何从零构建并运行vaststars?luamake编译到跑通第一屏的完整教程

如何从零构建并运行vaststars?luamake编译到跑通第一屏的完整教程 【免费下载链接】vaststars A game demo for Ant engine 项目地址: https://gitcode.com/gh_mirrors/va/vaststars vaststars(Red Frontier) 是基于开源游戏引擎 Ant …

📅 2026/10/9 20:14:20
Gin-Swagger-API文档自动生成与接口测试实战

Gin-Swagger-API文档自动生成与接口测试实战

Gin-Swagger-API文档自动生成与接口测试实战 文章导语 API文档是前后端协作的"合同"。手动编写文档不仅耗时,还容易与实际代码脱节。Swagger/OpenAPI规范让文档可以自动生成并与代码保持同步。本文将基于Gin框架,完整实现Swagger文档的自动生成…

📅 2026/10/8 6:04:30
MORE NEWS

更多资讯

📰

Node-Red环境搭建避坑指南:从零跑通第一个节点

1. 为什么我劝你先别急着拖节点,把环境搭明白再说 很多人第一次接触 Node-Red,是被它那种“拖拖拽拽就能跑通一个物联网流程”的演示吸引进来的。打开浏览器,左边一栏节点,中间一块画布,把 inject、function、debug 三…

📰

Context-Mode:一种解决代码导航迷航的上下文模式

写代码的时候最怕的不是报错,而是“迷路”。尤其是在一个几千行的文件里滚动半天,光标停住了,却完全想不起来自己现在正处于哪个类、哪个函数、哪个分支里。我几年前第一次遇到这个困境,是因为接手一个多人维护的项目,…

📰

Aurelio 上手:一个本地优先的个人财富管理应用,AI 只提建议不直改数据

2152 stars MIT Python local-first项目定位 Aurelio 是运行在本机的财富管理与财务规划应用,带一个可选的自然语言 AI 顾问。数据存放于本地 backend/data.db,不上传、不注册账号。 覆盖范围:银行/券商账户、持仓、基金穿透(按…

📰

Litellm实战:统一多LLM API网关的部署与排坑指南

如果手头同时接入三五家 LLM 服务商,你会很快发现一件事:真正麻烦的不是模型能力,而是 API 格式。A 家用这种报文,B 家用那种结构,错误码也各说各话,今天需求要换模型,明天就得改一版配套代码。…

📰

基于Spark与Django的胆结石数据分析与可视化系统设计

1. 这个题目为什么值得做:选题价值与技术选型逻辑1.1 从“毕业设计要被pass”说起的选题思路每年到了毕设选题的季节,很多同学来问我:老师给的题目要么是“XX管理系统”,要么是“A算法改进B算法”,前者工作量倒是够&am…

📰

lsp-mode 故障排查完全指南:从日志、服务器路径到最小环境复现

开发工具 【免费下载链接】lsp-mode Emacs client/library for the Language Server Protocol 项目地址: https://gitcode.com/gh_mirrors/ls/lsp-mode 点击查看 免费下载 导读 lsp-mode 是 Emacs 社区主流的 Language Server Protocol 客户端实现。当语言服务器无…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬