
如何安裝并加載 Prettier 插件讓 Prettier 格式化 PHP 等核心包之外支持的語言【免費下載鏈接】prettierPrettier is an opinionated code formatter.項目地址: https://gitcode.com/gh_mirrors/pr/prettierPrettier 核心prettier包內(nèi)置了 JavaScript 及其他 Web 相關(guān)語言PHP、Pug、Ruby、XML 等語言不在其中。要讓 Prettier 格式化這些語言需要安裝并加載對應(yīng)的插件比如 PHP 對應(yīng)官方插件prettier/plugin-php官方插件列表還包括prettier/plugin-pug、prettier/plugin-ruby、prettier/plugin-xml見 docs/plugins.md。本文的任務(wù)路徑是安裝 Prettier 與插件包 → 用 CLI、配置文件或 API 三種方式之一加載插件 → 用--check等文檔給出的方式驗證加載和格式化是否生效。準(zhǔn)備鎖定版本安裝 Prettier先在項目中本地安裝 Prettier安裝文檔給出的 npm 命令如下docs/install.mdnpm install --save-dev --save-exact prettier%PRETTIER_VERSION%其中%PRETTIER_VERSION%是官方文檔構(gòu)建時注入的版本占位符需要替換成你要鎖定的 Prettier 實際版本號。這條命令的關(guān)鍵點是--save-exact文檔明確提醒Prettier 每個版本都可能改變格式化結(jié)果package.json里必須鎖定精確版本。如果本地沒安裝就直接運行npx prettiernpx會臨時下載最新版文檔稱這不是一個好主意也更慢。yarn、pnpm、bun、deno 的等價命令見 docs/install.md。安裝插件包Prettier 插件是普通的 JavaScript 模塊傳給 Prettier 的插件字符串最終會通過import()表達(dá)式解析因此可以是模塊/包名、路徑或import()能接受的任意值docs/plugins.md。這意味著插件包需要先安裝到項目中才能按包名被import。以 npm 為例安裝命令的寫法和上面 Prettier 的安裝方式一致npm install --save-dev --save-exact prettier/plugin-php方式一主路徑CLI 通過--plugin加載最直接的方式是在命令行上指定插件docs/plugins.mdprettier --write example.php --pluginprettier/plugin-php注意--write會原地重寫覆蓋目標(biāo)文件。如果需要同時加載多個插件--plugin可以設(shè)置多次。方式二在配置文件中聲明plugins如果你希望編輯器集成和其他工具也能感知插件可以把它寫進(jìn) Prettier 配置文件。文檔給出的示例是prettier.config.mjsdocs/plugins.mdimport * as prettierPluginPhp from prettier/plugin-php; /** * see https://prettier.io/docs/configuration * type {import(prettier).Config} */ const config { plugins: [prettierPluginPhp], }; export default config;配置文件按優(yōu)先級解析的方式.prettierrc、prettier.config.js等見 docs/configuration.md。如果你正在本地開發(fā)一個插件也可以用相對路徑加載——插件會相對當(dāng)前工作目錄解析plugins: [./index.js],方式三通過 API 的plugins選項以編程方式調(diào)用時通過plugins選項傳入插件模塊docs/plugins.mdimport * as prettierPluginPhp from prettier/plugin-php; await prettier.format(code, { parser: php, plugins: [prettierPluginPhp], });驗證插件已生效文檔給出了兩種可核對的判斷方式。用--check看格式檢查結(jié)果。--check只檢查文件是否已格式化、不覆蓋文件適合放在 CI 中prettier . --check文檔示例輸出docs/cli.md全部文件已格式化時輸出Checking formatting... All matched files use Prettier code style!有文件需要重新格式化時會列出文件并提示Code style issues found in ... files. Run Prettier with --write to fix此時退出碼為1退出碼含義0全部已格式化1存在未格式化文件2Prettier 本身出錯。用getFileInfo確認(rèn)插件提供的解析器。docs/api.md 說明在options.plugins(string | URL | Plugin)[]中提供插件路徑可以幫助為 Prettier 核心不支持的文件推斷出inferredParser。也就是說對example.php調(diào)用prettier.getFileInfo并傳入 PHP 插件時返回對象的inferredParser不再是null說明該文件的語言已由插件接管。邊界與限制插件對目錄掃描的作用Prettier CLI 處理目錄參數(shù)時基于文件擴(kuò)展名和 Prettier 及其插件關(guān)聯(lián)的支持語言來查找文件docs/cli.md。不加載插件時.php文件對 CLI 來說是未知文件加載后才會被目錄掃描識別。緩存注意使用--cache時插件的版本和實現(xiàn)不參與緩存 key文檔建議在更新插件后手動刪除緩存docs/cli.md。舊的 Custom parser API 已在 v3.0.0 移除之前通過--parser傳解析模塊路徑的寫法需要遷移為--pluginCLI 選項或pluginsAPI 選項docs/api.md?!久赓M下載鏈接】prettierPrettier is an opinionated code formatter.項目地址: https://gitcode.com/gh_mirrors/pr/prettier創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考