如何安装并加载 Prettier 插件,让 Prettier 格式化 PHP 等核心包之外支持的语言
2026/9/10 8:09:38 网站建设 项目流程

如何安装并加载 Prettier 插件,让 Prettier 格式化 PHP 等核心包之外支持的语言

【免费下载链接】prettierPrettier is an opinionated code formatter.项目地址: https://gitcode.com/gh_mirrors/pr/prettier

Prettier 核心prettier包内置了 JavaScript 及其他 Web 相关语言,PHP、Pug、Ruby、XML 等语言不在其中。要让 Prettier 格式化这些语言,需要安装并加载对应的插件,比如 PHP 对应官方插件@prettier/plugin-php(官方插件列表还包括@prettier/plugin-pug@prettier/plugin-ruby@prettier/plugin-xml,见 docs/plugins.md)。本文的任务路径是:安装 Prettier 与插件包 → 用 CLI、配置文件或 API 三种方式之一加载插件 → 用--check等文档给出的方式验证加载和格式化是否生效。

准备:锁定版本安装 Prettier

先在项目中本地安装 Prettier,安装文档给出的 npm 命令如下(docs/install.md):

npm install --save-dev --save-exact prettier@%PRETTIER_VERSION%

其中%PRETTIER_VERSION%是官方文档构建时注入的版本占位符,需要替换成你要锁定的 Prettier 实际版本号。这条命令的关键点是--save-exact:文档明确提醒,Prettier 每个版本都可能改变格式化结果,package.json里必须锁定精确版本。如果本地没安装就直接运行npx prettiernpx会临时下载最新版,文档称这不是一个好主意,也更慢。

yarn、pnpm、bun、deno 的等价命令见 docs/install.md。

安装插件包

Prettier 插件是普通的 JavaScript 模块,传给 Prettier 的插件字符串最终会通过import()表达式解析,因此可以是模块/包名、路径或import()能接受的任意值(docs/plugins.md)。这意味着插件包需要先安装到项目中,才能按包名被import。以 npm 为例,安装命令的写法和上面 Prettier 的安装方式一致:

npm install --save-dev --save-exact @prettier/plugin-php

方式一(主路径):CLI 通过--plugin加载

最直接的方式是在命令行上指定插件(docs/plugins.md):

prettier --write example.php --plugin=@prettier/plugin-php

注意--write会原地重写(覆盖)目标文件。如果需要同时加载多个插件,--plugin可以设置多次。

方式二:在配置文件中声明plugins

如果你希望编辑器集成和其他工具也能感知插件,可以把它写进 Prettier 配置文件。文档给出的示例是prettier.config.mjs(docs/plugins.md):

import * as prettierPluginPhp from "@prettier/plugin-php"; /** * @see https://prettier.io/docs/configuration * @type {import("prettier").Config} */ const config = { plugins: [prettierPluginPhp], }; export default config;

配置文件按优先级解析的方式(.prettierrcprettier.config.js等)见 docs/configuration.md。

如果你正在本地开发一个插件,也可以用相对路径加载——插件会相对当前工作目录解析:

plugins: ["./index.js"],

方式三:通过 API 的plugins选项

以编程方式调用时,通过plugins选项传入插件模块(docs/plugins.md):

import * as prettierPluginPhp from "@prettier/plugin-php"; await prettier.format("code", { parser: "php", plugins: [prettierPluginPhp], });

验证插件已生效

文档给出了两种可核对的判断方式。

--check看格式检查结果。--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确认插件提供的解析器。docs/api.md 说明:在options.plugins(string | URL | Plugin)[])中提供插件路径,可以帮助为 Prettier 核心不支持的文件推断出inferredParser。也就是说,对example.php调用prettier.getFileInfo并传入 PHP 插件时,返回对象的inferredParser不再是null,说明该文件的语言已由插件接管。

边界与限制

  • 插件对目录扫描的作用:Prettier CLI 处理目录参数时,基于文件扩展名和 Prettier 及其插件关联的支持语言来查找文件(docs/cli.md)。不加载插件时,.php文件对 CLI 来说是未知文件;加载后才会被目录扫描识别。
  • 缓存注意:使用--cache时,插件的版本和实现不参与缓存 key,文档建议在更新插件后手动删除缓存(docs/cli.md)。
  • 旧的 Custom parser API 已在 v3.0.0 移除,之前通过--parser传解析模块路径的写法需要迁移为--pluginCLI 选项或pluginsAPI 选项(docs/api.md)。

【免费下载链接】prettierPrettier is an opinionated code formatter.项目地址: https://gitcode.com/gh_mirrors/pr/prettier

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询