1. 简介:
一款 Opinionated「预设立场型」的代码格式化工具,支持以下语言:
题外:Opinionated 这个词我反复斟酌,实在不知如何翻译才好。即使是英文中大家讨论的也很激烈,非一句半句说的清楚,可以看看参考链接。在 FCC 群请教过,有位前辈回复我 「预设立场型」软件。我觉得翻译的很好。
如果你这样写:
Prettier 会帮你格式化成:
2. 安装
yarn
npm
IDE 安装直接在 plugin market 搜索 Prettier,参考https://www.jianshu.com/p/0ada1096be5a
3. 不需要格式化的文件或者代码,该怎样标识?
3.1 Ignoring Files 标识无需格式化的文件比较简单:
这也是翻译官文的原因。目前项目有个文件引用的 layui, 格式化前:
格式化后:
这样本身已经没有美观可言了,要命的是项目启动报错,指说这个文件有标签没有闭合。一查官文还真有这种操作呢,可以忽略格式化某些文件或者行。
3.2 标识忽略格式化的代码,需要添加注释 prettier-ignore,例:
3.2.1 JS
格式化后:
3.2.2 JSX
3.2.3 HTML
3.2.4 CSS
3.2.5 Markdown
3.2.6 Range Ignore 有范围的注释(v1.12.0+ 支持)
这种方式只适用于 top-level 和自动生成代码的内容,比如 all-contributors, markdown-toc 等等。
例
3.2.7 GraphQL
4. 配置项
4.1 Print Width 即 Line Width,排版宽度即每行最大宽度。默认值是 80。
默认CLI 重写定义API 重写定义
80
--print-width
printWidth:
注:如果想在 Markdown 文件中禁用折行功能,可以在 Prose Wrap 中配置。
4.2 Tab Width
制表符宽度,每个层级缩进几个空格。默认值 2
默认CLI 重写定义API 重写定义
2
--tab-width
tabWidth:
4.3 Tabs
是否使用 tab 代替 space(空格) 为单位缩进,默认 false
默认CLI 重写定义API 重写定义
false
--use-tabs
useTabs:
4.4 Semicolons
分号,句尾是否自动补全“分号”,默认 true
true 为每个 statement 末尾都添加分号
false 只为会引起 ASI Failure 语句的开始行添加分号
默认CLI 重写定义API 重写定义
true
--no-semi
semi:
4.5 Quotes
默认 false,启用双引号,不启用单引号。Prettier 会默认把单引号变成双引号。
注:
JSX 会忽略此配置项 -- 详情 jsx-single-quote
当其中一种引号的使用频率远远大于另一种时,较少使用的那种引号会被用作格式化字符串的引号。 例如:"This \"example\" is single quoted" 会被格式化为'Thi