Prettier 是一个“有态度”的代码格式化工具,它支持:JavaScript (包括实验性功能)、JSX、Angular、Vue、Flow、TypeScript、CSS、Less 和 SCSS、HTML、JSON、GraphQL、Markdown,包括 GFM 和 MDX、YAML
opinionated
code formatter它移除了所有原始样式* 并确保输出的所有代码都符合一致的样式。
# npm
$ npm install --save-dev --save-exact prettier
# yarn
$ yarn add --dev --exact prettier
在目录结构需要新建的文件
.prettierrc.json - 定义 prettier 相关配置文件。
.prettierignore - 设置不进行 prettier 格式化的文件。
Prettier uses cosmiconfig for configuration file support. This means you can configure Prettier via (in order of precedence):
json:
{
"trailingComma": "es5",
"tabWidth": 4,
"semi": false,
"singleQuote": true
}
javascript:
// prettier.config.js or .prettierrc.js
module.exports = {
trailingComma: "es5",
tabWidth: 4,
semi: false,
singleQuote: true,
}
yaml:
# .prettierrc or .prettierrc.yaml
trailingComma: "es5"
tabWidth: 4
semi: false
singleQuote: true
toml:
# .prettierrc.toml
trailingComma = "es5"
tabWidth = 4
semi = false
singleQuote = true
指定行字符串显示长度。
Default | CLI Override | API Override |
---|---|---|
80 | –print-width <int> | printWidth: <int> |
指定每个缩进级别的空格数。
Default | CLI Override | API Override |
---|---|---|
2 | –tab-width <int> | tabWidth: <int> |
带有标签而不是空格的缩进线。
Default | CLI Override | API Override |
---|---|---|
false | –use-tabs | useTabs: <bool> |
在语句的末尾打印分号。
可选项:
Default | CLI Override | API Override |
---|---|---|
true | –no-semi | semi: <bool> |
使用单引号而不是双引号。
笔记:
Default | CLI Override | API Override |
---|---|---|
false | –single-quote | singleQuote: <bool> |
引用对象中属性时更改。
可选项:
Default | CLI Override | API Override |
---|---|---|
“as-needed” | –quote-props <as-needed/consistent/preserve> | quoteProps: “<as-needed/consistent/preserve>” |
使用单引号而不是 JSX 中的双引号。
Default | CLI Override | API Override |
---|---|---|
false | –jsx-single-quote | jsxSingleQuote: <bool> |
在可能的多线逗号分离的语法结构中打印尾随逗号。 (例如单行阵列,例如,从未获得尾随逗号。)
可选项:
“es5” - 在 ES5(对象,阵列等)有效的尾随逗号。 在键盘中的类型参数中没有尾随逗号。
“none” - 没有尾随逗号。
“all” - 尽可能尾随逗号(包括函数参数和呼叫)。 要运行,格式化的 JavaScript 代码需要一种支持 ES2017(Node.js 8+或现代浏览器)或下级编译的引擎。 这也使得在 CypeScript 中的类型参数中可以实现尾随逗号(自 2018 年 1 月发布版本 2.7 以来支持。
Default | CLI Override | API Override |
---|---|---|
“es5” | –trailing-comma <es5/none/all> | trailingComma: “<es5/none/all>” |
在对象文字中的括号之间打印空格。
可选项:
Default | CLI Override | API Override |
---|---|---|
true | –no-bracket-spacing | bracketSpacing: <bool> |
在最后一行末尾的多行 JSX 元素中放置一个多行 JSX 元素,而不是单行在下一行(不适用于自闭元素)。
可选项:
Default | CLI Override | API Override |
---|---|---|
false | –jsx-bracket-same-line | jsxBracketSameLine: <bool> |
在唯一箭头函数参数周围包含括号。
Default | CLI Override | API Override |
---|---|---|
“always” | –arrow-parens <always/avoid> | arrowParens: “<always/avoid>” |
乍一看,由于视觉噪音较小,避免括号可能看起来更好的选择。 但是,当 prettier 删除括号时,它变得越难添加类型注释,额外的参数或默认值以及制定其他更改。 一致使用括号在编辑真实代码库时提供更好的开发人员体验,这证明了选项的默认值。
格式化文件的段。
这两个选项可用于格式化启动和结束在给定的字符偏移(分别包含和独占)的代码。 该范围将扩展:
Default | CLI Override | API Override |
---|---|---|
0 | –range-start <int> | rangeStart: <int> |
Infinity | –range-end <int> | rangeEnd: <int> |
指定要使用的解析器。
Babel 和 Flow 解析器都支持相同的 JavaScript 功能(包括流型注释)。 它们可能在某些边缘案例中有所不同,因此如果您遇到其中一个,您可以尝试尝试流量而不是 Babel。 几乎相同适用于打字和 Babel-TS。 BABEL-TS 可能支持类型签名尚未支持的 JavaScript 功能(提议),但是当涉及到无效的代码和比 TypeScript 解析器的战斗测试较少时,它不太宽松。
可选项:
也支持自定义解析器。 首先在 v1.5.0 中提供
Default | CLI Override | API Override |
---|---|---|
None --parser | –parser ./my-parser parser: “<string>” | parser: require("./my-parser") |
指定要用于推断要使用的解析器的文件名。
例如,以下将使用 CSS 解析器:
cat foo | prettier --stdin-filepath foo.css
此选项仅在 CLI 和 API 中有用。 在配置文件中使用它没有意义。
Default | CLI Override | API Override |
---|---|---|
None | –stdin-filepath <string> | filepath: “<string>” |
prettier 可以仅限于文件顶部的仅格式化包含特殊注释的文件,该文件称为 Pragma。 当逐渐过渡到 prettier 的大型未格式化的码布时,这非常有用。
当提供 - 重新查询 - Pragma 时,将格式化以下内容作为其第一个注释的文件:
/**
* @prettier
*/
or
/**
* @format
*/
Default | CLI Override | API Override |
---|---|---|
false | –require-pragma | requirePragma: <bool> |
prettier 可以在文件顶部插入特殊的@Format 标记,指定文件已格式化文件。 与 - 重新核心 - Pragma 选项一起使用时,这会很好。 如果文件顶部已有 DocBlock,则此选项将使用@Format 标记添加换行符。
Default | CLI Override | API Override |
---|---|---|
false | –insert-pragma | insertPragma: <bool> |
默认情况下,更 prettier 的将包装 Markdown 文本,因为某些服务使用 Linebreak 敏感渲染器,例如, github 评论和 bitbucket。 在某些情况下,您可能希望依赖 Editor / Viewer 软包装,因此此选项允许您选择“永远不会”。
可选项:
Default | CLI Override | API Override |
---|---|---|
“preserve” | –prose-wrap <always/never/preserve> | proseWrap: “<always/never/preserve>” |
为 HTML,Vue,Angular 和 Suppherbars 指定全局空白的灵敏度。 请参阅空白敏感格式以获取更多信息。
可选项:
Default | CLI Override | API Override |
---|---|---|
“css” | –html-whitespace-sensitivity <css/strict/ignore> | htmlWhitespaceSensitivity: “<css/strict/ignore>” |
是否要在 VUE 文件中缩进 <script> 和 <style> 标记中的代码。 有些人(如 Vue 的创建者)不归于挽救缩进级别,但这可能会在编辑器中打破代码折叠。
Default | CLI Override | API Override |
---|---|---|
false | –vue-indent-script-and-style | vueIndentScriptAndStyle: <bool> |
所有操作系统中的所有现代文本编辑器都能够在使用\ n(lf)时正确显示线路结束。 但是,旧版本的 Windows for Windows 将在视觉上挤压这样的线,因为它们只能处理\ r \ n(crlf)。
可选项:
Default | CLI Override | API Override |
---|---|---|
“lf” | –end-of-line <lf/crlf/cr/auto> | endOfLine: “<lf/crlf/cr/auto>” |
控制是否 prettier 格式的引用代码嵌入在文件中。
可选项:
Default | CLI Override | API Override |
---|---|---|
“auto” | –embedded-language-formatting=off | embeddedLanguageFormatting: “off” |
通过 npm 包管理工具或开发工具,均能够安装 prettier 插件。在项目文件中,需要创建一个名为 .prettier 的文件用来定义格式,通过对配置参数的设定,就能够快速地实现格式化统一了。
最后,如果您有更好的方法,欢迎在留言区中分享;或者实际操作中遇到什么问题均可留言或者私信我,感谢您的观看!
官方文档:Prettier-docs