則終極指南)
如何玩轉 Duster 通配符路徑匹配自定義 include/exclude 規(guī)則終極指南【免費下載鏈接】dusterAutomatic configuration for Laravel apps to apply Tightens standard linting code standards.項目地址: https://gitcode.com/gh_mirrors/du/dusterDuster 是一款專為 Laravel 應用打造的自動代碼規(guī)范工具能一鍵應用 Tighten 團隊的標準 Linting 規(guī)則。對于大型項目你往往只想檢查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方法實現(xiàn)最常用的有 3 種模式含義示例目錄名精確匹配整個目錄app**/目錄名/**匹配任意深度下的同名目錄**/vendor/***.php/ 具體文件名匹配單個文件或后綴IncludeClass.php舉一個真實的通配符用例來自官方測試夾具 DusterConfigWildcard/duster.json{ include: [**/Include2/**], exclude: [**/Exclude2/**] }這里的**表示任意層級的目錄所以無論Include2出現(xiàn)在第幾層都會被納入檢查而Exclude2無論在多深的嵌套里都會被跳過。對應的效果驗證可以看 DusterConfigWildcardTest.php被排除的ExcludeClass.php不會出現(xiàn)在 Lint 報告中。匹配機制的幾個小細節(jié)自動過濾 PHP 文件通配符展開后只會保留.php、.php.inc、.php.stub、.php.skeleton后綴的文件見 DusterConfig.php所以不用自己寫**/*.php。路徑分隔符隨便寫Windows 反斜杠會自動轉換為正斜杠配置在跨平臺團隊中更安全。尾部的/或/*會被自動清理寫tests/和tests效果一樣。5 個實戰(zhàn)場景的 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 是強制排除的無法被配置覆蓋——這是為了防止誤掃海量依賴代碼拖慢執(zhí)行速度。寫完后如何快速驗證規(guī)則生效配置改完直接用 lint 命令驗證完整用法見 README.md./vendor/bin/duster lint ./vendor/bin/duster fix如果只想檢查 Git 中有未提交改動的文件加上--dirty選項即可適合開發(fā)中快速反饋./vendor/bin/duster lint --dirty輸出中如果看到被排除文件的報錯消失、被包含的文件正常出現(xiàn)在報告里說明你的通配符規(guī)則已經配置成功。?小結duster.json的include是白名單、exclude是黑名單支持 glob 通配符**可匹配任意層級目錄是排除深層嵌套模塊的利器PHP 文件過濾和vendor/、node_modules/等默認排除是自動生效的無需重復配置改完配置用duster lint立即驗證養(yǎng)成配置即驗證的習慣掌握這些技巧后無論項目結構多復雜你都能讓 Duster 的掃描范圍精準可控既提速又不漏檢?!久赓M下載鏈接】dusterAutomatic configuration for Laravel apps to apply Tightens standard linting code standards.項目地址: https://gitcode.com/gh_mirrors/du/duster創(chuàng)作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考