CLI
使用 `prettier` 命令从命令行运行 Prettier。
prettier [options] [file/dir/glob ...]
要运行本地安装的 Prettier 版本,请在命令前加上 `npx` 或 `yarn`(如果您使用 Yarn),例如 `npx prettier --help` 或 `yarn prettier --help`。
要就地格式化文件,请使用 `--write`。(注意:这会覆盖您的文件!)
在实践中,这可能看起来像这样
prettier . --write
此命令格式化当前目录及其子目录中 Prettier 支持的所有文件。
建议始终确保 `prettier --write .` 仅格式化项目中所需的内容。使用 .prettierignore
文件忽略不应格式化的内容。
一个更复杂的示例
prettier docs package.json "{app,__{tests,mocks}__}/**/*.js" --write --single-quote --trailing-comma all
不要忘记全局通配符周围的**引号**!引号确保 Prettier CLI 扩展全局通配符而不是您的 shell,这对于跨平台使用非常重要。
最好使用 配置文件 来设置格式化选项,例如 `--single-quote` 和 `--trailing-comma`,而不是将它们作为 CLI 标志传递。这样,Prettier CLI、编辑器集成 和其他工具都可以知道您使用了哪些选项。
文件模式
给定路径/模式列表,Prettier CLI 首先将其中的每个条目视为文字路径。
如果路径指向现有文件,Prettier CLI 将继续处理该文件,并且不会将路径解析为全局通配符模式。
如果路径指向现有目录,Prettier CLI 将递归查找该目录中受支持的文件。此解析过程基于文件扩展名和 Prettier 及其 插件 与受支持语言关联的众所周知的文件名。
否则,将使用 来自 `fast-glob` 模块的全局通配符语法 将条目解析为全局通配符模式。
Prettier CLI 将忽略位于 `node_modules` 目录中的文件。要选择退出此行为,请使用 `--with-node-modules` 标志。
扩展参数时,Prettier CLI 不会跟踪符号链接。
要转义全局通配符中的特殊字符,可以使用以下两种转义语法之一:`prettier "\[my-dir]/*.js"` 或 `prettier "[[]my-dir]/*.js"`。两者都匹配名为 `[my-dir]` 的目录中的所有 JS 文件,但是后者语法更可取,因为前者在 Windows 上不起作用,在 Windows 上,反斜杠被视为路径分隔符。
--check
当您想检查文件是否已格式化时,可以使用 `--check` 标志(或 `-c`)运行 Prettier。这将输出一条用户友好的消息,以及任何未格式化文件的列表(如果有)。
prettier . --check
如果所有文件都已格式化,则控制台输出
Checking formatting...
All matched files use Prettier code style!
如果某些文件需要重新格式化,则控制台输出
Checking formatting...
[warn] src/fileA.js
[warn] src/fileB.js
[warn] Code style issues found in 2 files. Run Prettier with --write to fix.
在第二种情况下,命令将返回退出代码 `1`,这在 CI 管道中很有用。用户友好的状态消息可帮助项目贡献者对可能出现的问题做出反应。为了最大程度地减少 `prettier --check` 找到未格式化文件的次数,您可能希望在存储库中配置一个 提交前钩子。应用此实践将最大程度地减少因代码格式问题导致 CI 失败的次数。
如果您需要将未格式化文件的列表管道传输到另一个命令,则可以使用 --list-different
标志代替 `--check`。
退出代码
代码 | 信息 |
---|---|
0 | 所有内容都已正确格式化 |
1 | 某些内容未正确格式化 |
2 | Prettier 出现问题 |
--debug-check
如果您担心 Prettier 会更改代码的正确性,请将 `--debug-check` 添加到命令中。这将导致 Prettier 在检测到代码正确性可能已更改时打印错误消息。请注意,`--write` 不能与 `--debug-check` 一起使用。
--find-config-path
和 --config
如果您反复使用 `prettier` 格式化单个文件,则当 Prettier 尝试查找 配置文件 时,会产生少量性能损失。为了跳过此步骤,您可以要求 Prettier 一次查找配置文件,并在以后重复使用它。
$ prettier --find-config-path path/to/file.js
path/to/.prettierrc
这将为您提供配置文件的路径,您可以将其传递给 `--config`
prettier path/to/file.js --write --config path/to/.prettierrc
如果您的配置文件位于 Prettier 无法找到的位置(例如 `config/` 目录),您也可以使用 `--config`。
如果您没有配置文件,或者想要在配置文件存在时忽略它,则可以改为传递 `--no-config`。
--ignore-path
包含描述要忽略的文件的模式的文件的路径。默认情况下,Prettier 会查找 `./.gitignore` 和 `./.prettierignore`。
接受多个值。
--list-different
另一个有用的标志是 `--list-different`(或 `-l`),它打印与 Prettier 格式不同的文件的名称。如果有差异,脚本将出错,这在 CI 场景中很有用。
prettier . --single-quote --list-different
您也可以使用 --check
标志,其工作方式与 `--list-different` 相同,但还会将用户友好的摘要消息打印到标准输出。
--no-config
不要查找配置文件。将使用默认设置。
--config-precedence
定义如何结合 CLI 选项评估配置文件。
cli-override(默认)
CLI 选项优先于配置文件
file-override
配置文件优先于 CLI 选项
prefer-file
如果找到配置文件,将对其进行评估并忽略其他 CLI 选项。如果未找到配置文件,CLI 选项将照常评估。
此选项为编辑器集成添加了支持,用户在其中定义其默认配置,但希望尊重特定于项目的配置。
--no-editorconfig
在解析配置时,请勿考虑.editorconfig
。有关详细信息,请参阅prettier.resolveConfig
文档。
--with-node-modules
Prettier CLI 将忽略位于 `node_modules` 目录中的文件。要选择退出此行为,请使用 `--with-node-modules` 标志。
--write
这会就地重写所有已处理的文件。这类似于eslint --fix
的工作流程。您也可以使用-w
别名。
--log-level
更改 CLI 的日志记录级别。有效选项为
error
warn
log
(默认)debug
silent
--stdin-filepath
Prettier CLI 将视为标准输入的文件的路径。例如
abc.css
.name {
display: none;
}
shell
$ cat abc.css | prettier --stdin-filepath abc.css
.name {
display: none;
}
--ignore-unknown
使用--ignore-unknown
(或-u
),Prettier 将忽略模式匹配到的未知文件。
prettier "**/*" --write --ignore-unknown
--no-error-on-unmatched-pattern
模式不匹配时防止错误。
--cache
如果启用此选项,则以下值将用作缓存键,并且仅当其中一个值更改时才会格式化文件。
- Prettier 版本
- 选项
- Node.js 版本
- (如果
--cache-strategy
为metadata
)文件元数据,例如时间戳 - (如果
--cache-strategy
为content
)文件内容
prettier . --write --cache
在不使用--cache
的情况下运行 Prettier 将删除缓存。
此外,由于缓存文件存储在./node_modules/.cache/prettier/.prettier-cache
中,因此您可以使用rm ./node_modules/.cache/prettier/.prettier-cache
手动将其删除。
插件版本和实现不用作缓存键。我们建议您在更新插件时删除缓存。
--cache-location
--cache
标志使用的缓存文件位置的路径。如果您没有显式指定--cache-location
,Prettier 会将缓存文件保存到./node_modules/.cache/prettier/.prettier-cache
。
如果传递了文件路径,则该文件将用作缓存文件。
prettier . --write --cache --cache-location=path/to/cache-file
--cache-strategy
缓存用于检测已更改文件的策略。可以是metadata
或content
。
通常,metadata
更快。但是,content
可用于更新时间戳而无需更改文件内容。例如,在git clone
等 Git 操作期间可能会发生这种情况,因为它不跟踪文件修改时间。
如果未指定策略,则将使用content
。
prettier . --write --cache --cache-strategy metadata