代码格式化工具---prettier配置
我自己的常用 prettier 配置如下:
// .prettierrc 文件
// 这里修改的都是与默认值不同的,没有修改到的就是启用默认值
// .prettierrc 文件是使用 json 格式,如果报错了,该配置文件在编辑器里面是不会生效的
{
"bracketSpacing": true,
"printWidth": 160,
"semi": false,
"singleQuote": true
}
其他还可以选择
// prettier.config.js
module.exports = {
"bracketSpacing": true, // 是否在对象属性添加空格,这里选择是 { foo: bar }
"printWidth": 160, // 指定代码换行的行长度。单行代码宽度超过指定的最大宽度,将会换行,如果都不想换,可以添加 "proseWrap": "never"
"semi": false, // 是否在语句末尾打印分号,这里选择不加
"singleQuote": true // 是否使用单引号,这里选择使用
}
// package.json 中的 prettier 属性
{
"prettier": {
"bracketSpacing": true, // 是否在对象属性添加空格,这里选择是 { foo: bar }
"printWidth": 160, // 指定代码换行的行长度。单行代码宽度超过指定的最大宽度,将会换行,如果都不想换,可以添加 "proseWrap": "never"
"semi": false, // 是否在语句末尾打印分号,这里选择不加
"singleQuote": true // 是否使用单引号,这里选择使用
}
}
常用配置文件链接---JavaScript开发中常用的代码规范配置文件
prettier 配置选项 (官网文档译文)
支持自定义的代码风格,可在CLI和API中使用。
单行代码的最大宽度 Print Width
指定代码换行的行长度。单行代码宽度超过指定的最大宽度,将会换行。
为了便于阅读,官方建议不要使用超过80个字符。我这边设置了160
默认 | CLI | API/.prettierrc/prettier.config.js/package.json["prettier"] |
---|---|---|
80 | --print-width <int> | printWidth: <int> |
(如果在格式化 Markdown 时不想要换行,可以设置 Prose Wrap (是否换行) 选项以禁用它。)
Tab宽度 Tab Width
指定每个缩进级别的空格数。
默认 | CLI | API/.prettierrc/prettier.config.js/package.json["prettier"] |
---|---|---|
2 | --tab-width <int> | tabWidth: <int> |
Tab Tabs
使用制表符 (tab) 缩进行而不是空格 (space)。
- 如果设置了制表符缩进,并且一个缩进单位4个空格,那么编辑器一个 tab 键,出现的间隔就是 "一",一个大横杆
- 如果设置了空格缩进,并且一个缩进单位4个空格,那么编辑器一个 tab 键,出现的间隔就是 "····",四个小点
- 上面两个长度单位是一样的,都是4个空格,但是空格缩进,在代码进行空白处选择的时候,是一格格选的,制表符缩进是一下子4格选的
默认 | CLI | API/.prettierrc/prettier.config.js/package.json["prettier"] |
---|---|---|
false | --use-tabs | useTabs: <bool> |
(Tabs 将用于缩进,但 Prettier 使用空格来对齐代码,例如三元组。)
分号 Semicolons
在语句末尾打印分号。
有效选项:
true - 在每个语句的末尾添加分号。
false- 仅在可能引入ASI故障的行的开头添加分号。
默认 | CLI | API/.prettierrc/prettier.config.js/package.json["prettier"] |
---|---|---|
true | --no-semi | semi: <bool> |
引号 Quotes
使用单引号而不是双引号。
笔记:
JSX 引用忽略此选项 - 请参阅 jsx-single-quote。
如果引号数超过其他引号,则使用较少的引用将用于格式化字符串
示例:
"I'm double quoted"
// 结果
"I'm double quoted"
和
"This \"example\" is single quoted"
// 结果
'This "example" is single quoted'。
默认 | CLI | API/.prettierrc/prettier.config.js/package.json["prettier"] |
---|---|---|
false | --single-quote | singleQuote: <bool> |
引号属性 Quote Props
引用对象中的属性时更改。
有效选项:
"as-needed" - 仅在需要时在对象属性周围添加引号。
"consistent" - 如果对象中至少有一个属性需要引号,则引用所有属性。
"preserve" - 尊重对象属性中引号的输入用法。
默认 | CLI | API/.prettierrc/prettier.config.js/package.json["prettier"] |
---|---|---|
"as-needed" | --quote-props <as-needed | consistent | preserve> | quoteProps: "<as-needed | consistent | preserve>" |
JSX引号 JSX Quotes
在JSX中使用单引号而不是双引号。
默认 | CLI | API/.prettierrc/prettier.config.js/package.json["prettier"] |
---|---|---|
false | --jsx-single-quote | jsxSingleQuote: <bool> |
尾随逗号 Trailing Commas
多行时尽可能打印尾随逗号。(例如,单行数组永远不会得到尾随逗号。)
有效选项:
"none" - 没有尾随逗号。
"es5" - 在ES5中有效的尾随逗号(对象,数组等)
"all" - 尽可能使用尾随逗号(包括函数参数)。这需要 nodejs 8。
默认 | CLI | API/.prettierrc/prettier.config.js/package.json["prettier"] |
---|---|---|
"none" | --trailing-comma <none | es5 | all> | trailingComma: "<none | es5 | all>" |
括号间距(这里指{、}) Bracket Spacing
在对象文字中打印括号之间的空格。
有效选项:
true- 例子:{ foo: bar }。
false- 例子:{foo: bar}。
默认 | CLI | API/.prettierrc/prettier.config.js/package.json["prettier"] |
---|---|---|
true | --no-bracket-spacing | bracketSpacing: <bool> |
JSX 括号(这里指<、>) JSX Brackets
将 > 多行 JSX 元素放在最后一行的末尾,而不是单独放在下一行(不适用于自闭元素)。
有效选项:
true - 示例:
<button
className="prettier-class"
id="prettier-id"
onClick={this.handleClick}>
Click Here
</button>
false - 示例:
<button
className="prettier-class"
id="prettier-id"
onClick={this.handleClick}
>
Click Here
</button>
默认 | CLI | API/.prettierrc/prettier.config.js/package.json["prettier"] |
---|---|---|
false | --jsx-bracket-same-line | jsxBracketSameLine: <bool> |
箭头函数圆括号 Arrow Function Parentheses
首先在v1.9.0中提供
在单个箭头函数参数周围加上括号。
有效选项:
"avoid" - 尽可能省略parens。例:x => x
"always" - 始终包括parens。例:(x) => x
默认 | CLI | API/.prettierrc/prettier.config.js/package.json["prettier"] |
---|---|---|
"avoid" | --arrow-parens <avoid | always> | arrowParens: "<avoid | always>" |
范围 Range
仅格式化文件的一部分。
这两个选项可用于格式化以给定字符偏移量开始和结束的代码(分别包含和排除)
默认 | CLI | API/.prettierrc/prettier.config.js/package.json["prettier"] |
---|---|---|
0 | --range-start <int> | rangeStart: <int> |
Infinity | --range-end <int> | rangeEnd: <int> |
解析器 Parser
指定要使用的解析器。
Prettier 会自动从输入文件路径中推断出解析器,因此您不必更改此设置。
这两个 babel 和 flow 解析器都支持相同的 JavaScript 功能集(包括Flow类型注释)。
它们可能在某些边缘情况下有所不同,因此如果您碰到其中一个,您可以尝试 flow 而不是 babel。
有效选项:
"babel"(来自 @babel/parser )命名为 "babylon" until v1.16.0
"babel-flow"(与解析器 "babel" 一样,但是明确地启用 Flow 解析以避免歧义)首先在v1.16.0中可用
"flow"(通过 flow-parser)
"typescript"(来自 @typescript-eslint/typescript-estree)首先在v1.4.0中提供
"css"(通过 postcss-scss 和 postcss-less,自动检测使用哪个解释器)首先在v1.7.1中提供
"scss"(与解析器 "css"一样,更喜欢 postcss-scss )首先在v1.7.1中提供
"less"(与解析器 "css"一样,更喜欢 postcss-less )首先在v1.7.1中提供
"json"(来自 @babel/parser parseExpression )首先在v1.5.0中提供
"json5"(与解析器 "json"一样,但输出为 json5 )首先在v1.13.0中可用
"json-stringify"(与解析器 "json"一样,但输出类似 JSON.stringify )首先在v1.13.0中提供
"graphql"(通过 graphql/language )首先在v1.5.0中提供
"markdown"(通过 remark-parse )首先在v1.8.0中提供
"mdx"(通过 remark-parse 和 @mdx-js/mdx )首先在v1.15.0中提供
"html"(通过 angular-html-parser )首先在1.15.0中提供
"vue"(与解析器 "html"一样,但也格式化于 vue 的语法)首先在1.10.0中可用
"angular"(与解析器 "html"一样,但也通过 angular-estree-parser 格式化 augular 特定的语法)首先在1.15.0中提供
"lwc"(与解析器 "html"一样,但也为 LWC 特定语法格式化)首先在1.17.0中可用
"yaml"(通过 yaml 和 yaml-unist-parser )首先在1.14.0中提供
还支持自定义解析器。首先在v1.5.0中提供
默认 | CLI | API/.prettierrc/prettier.config.js/package.json["prettier"] |
---|---|---|
没有 | --parser <string> --parser ./my-parser |
parser: "<string>" parser: require("./my-parser") |
注意:默认值为"babylon"v1.13.0。
文件路径 File Path
指定用于推断要使用的解析器的文件名。
例如,以下将使用CSS解析器:
cat foo | prettier --stdin-filepath foo.css
默认 | CLI | API/.prettierrc/prettier.config.js/package.json["prettier"] |
---|---|---|
没有 | --stdin-filepath <string> | filepath: "<string>" |
需要编译指示 Require pragma
首先在v1.7.0中提供
Prettier 可以将自己限制为仅在文件顶部格式化包含特殊注释(称为pragma)的文件。
当逐步将大型未格式化的代码库转换为更漂亮的代码库时,这非常有用。
例如,提供以下内容作为其第一个注释的文件将被格式化 --require-pragma:
/**
* @prettier
*/
或者
/**
* @format
*/
默认 | CLI | API/.prettierrc/prettier.config.js/package.json["prettier"] |
---|---|---|
false | --require-pragma | requirePragma: <bool> |
插入Pragma Insert Pragma
首先在v1.8.0中提供
Prettier 可以在文件顶部插入一个特殊的 @format 标记,指定文件格式需要被格式化。
当与 --require-pragma 选项一起使用时,这很有效。
如果文件顶部已有 docblock,则此选项将使用 @format 标记向其添加换行符。
默认 | CLI | API/.prettierrc/prettier.config.js/package.json["prettier"] |
---|---|---|
false | --insert-pragma | insertPragma: <bool> |
是否换行 Prose Wrap
首先在v1.8.2中提供
默认情况下,Prettier 将按原样包含 markdown 文本,因为某些服务使用对行敏感的渲染器,例如 GitHub 注释和 BitBucket。
在某些情况下,您可能希望依赖编辑器/查看器,因此此选项允许您选择退出 "never"。
有效选项:
"always" - 如果超过打印宽度,请换行。
"never" - 不要换行。
"preserve" - 按原样显示。首先在v1.9.0中提供
默认 | CLI | API/.prettierrc/prettier.config.js/package.json["prettier"] |
---|---|---|
"preserve" | --prose-wrap <always | never | preserve> | proseWrap: "<always | never | preserve>" |
HTML空白灵敏度 HTML Whitespace Sensitivity
首次在v1.15.0中提供
指定 HTML 文件的全局空白区域敏感度
有效选项:
"css"- 遵守CSS display属性的默认值。
"strict" - 空格被认为是敏感的。
"ignore" - 空格被认为是不敏感的。
html 中空格也会占位,影响布局,prettier 格式化的时候可能会将文本换行,造成布局错乱
<a href="https://prettier.io/">Prettier is an opinionated code formatter.</a>
<!-- 变成 -->
<!-- "Prettier is an opinionated code formatter. " 另起一行,在页面的布局上就会多一个节点文本出来 -->
<a href="https://prettier.io/">
Prettier is an opinionated code formatter.
</a>
默认 | CLI | API/.prettierrc/prettier.config.js/package.json["prettier"] |
---|---|---|
"css" | --html-whitespace-sensitivity <css | strict | ignore> | htmlWhitespaceSensitivity: "<css | strict | ignore>" |
行结束 End of Line
首次出现在1.15.0中
由于历史原因,在文本文件中存在两种常用的行结尾的风格。那是\n(或LF换行)和\r\n(或CRLF用于回车+换行)。
前者在 Linux 和 macOS 上很常见,而后者在 Windows 上很普遍。可以在维基百科上找到解释其原因的一些细节。
默认情况下,Prettier 会保留给定文件已使用的行尾的风格。它还将一个文件中的混合行结尾转换为它在第一行末尾找到的结尾。
当人们在不同操作系统上协作项目时,很容易在中央 git 存储库中找到混合行结尾。
Windows 用户也可能会意外地将已提交文件中的行结尾更改 LF 为 CRLF。
这样做会产生很大的影响 git diff,如果在代码审查过程中没有注意到,那么file(git blame)的所有逐行历史都会丢失。
如果你想确保你的 git 存储库在 Prettier 所涵盖的文件中只包含 Linux 风格的行结尾:
- 将 endOfLine 选项设置为 lf
- 配置一个 pre-commit 钩子,运行 Prettier
- 配置 Prettier 在CI管道中运行 --check flag
- Windows用户在使用您的仓库之前,运行 git config core.autocrlf false,以便git 在 checkout 时不会转换 LF 为 CRLF。或者,您可以添加 * text=auto eol=lf 到 repo 的.gitattributes 文件来实现此目的。
所有操作系统中的所有现代文本编辑器都能够在使用 \n(LF)时正确显示行结尾。但是,旧版本的 Windows 记事本会直观地将这些行压缩成一行。
有效选项:
"auto" - 维护现有的行结尾(通过查看第一行之后使用的内容来标准化一个文件中的混合值)
"lf"- Line Feed only(\n),在 Linux 和 macOS 以及 git repos 内部很常见
"crlf"- 回车符+换行符(\r\n),在 Windows 上很常见
"cr"- 仅限回车符(\r),很少使用
默认 | CLI | API/.prettierrc/prettier.config.js/package.json["prettier"] |
---|---|---|
"auto" | --end-of-line <auto | lf | crlf | cr> | endOfLine: "<auto | lf | crlf | cr>" |
代码格式化工具---prettier配置的更多相关文章
- 一款超人气代码格式化工具prettier
一.prettier 介绍 官方自己介绍说,prettier是一款强势武断的代码格式化工具,它几乎移除了编辑器本身所有的对代码的操作格式,然后重新显示.就是为了让所有用这套规则的人有完全相同的代码.在 ...
- 代码格式化工具Astyle配置
Astyle是一个很好的代码格式化工具,其他不多说,下面介绍一下我在VS 2010的配置 1. http://sourceforge.net/projects/astyle,这是该插件的网站,下载后把 ...
- YAPF:Google开源的Python代码格式化工具
点这里 现在的大多数 Python 代码格式化工具(比如:autopep8 和 pep8ify)是可以移除代码中的 lint 错误.这显然有些局限性.比如:遵循 PEP 8 指导的代码可能就不会被格式 ...
- log4net保存到数据库系列三、代码中xml配置log4net
园子里面有很多关于log4net保存到数据库的帖子,但是要动手操作还是比较不易,从头开始学习log4net数据库日志一.WebConfig中配置log4net 一.WebConfig中配置log4ne ...
- 【Git - 基础篇】如何快速有效的管理你的代码 - 安装和配置
[本文仅凭个人经验进行整理,如有错误,欢迎指正,互相学习^^] -------------------------------------------------------------------- ...
- python 代码格式化工具:YAPF
学习资料: https://github.com/google/yapf 背景 现在的大多数 Python 代码格式化工具(比如:autopep8 和 pep8ify)是可以移除代码中的 lint 错 ...
- css 10 款非常棒的CSS代码格式化工具推荐
http://www.iteye.com/news/23692/ 10 款非常棒的CSS代码格式化工具推荐 2011-12-14 09:31 by 副主编 wangguo 评论(0) 有9111人浏 ...
- CSS代码格式化工具
CSS代码格式化工具 http://tool.lanrentuku.com/cssformat/ 可实现CSS代码格式化和CSS在线压缩 请将CSS代码复制到下面表单中:
- 用JAVA代码获取Weblogic配置的JNDI 数据源连接
第一步:生成与JDK版本对应的weblogicjar,利用cmd 进入到weblogic_home 路径下进入到server/lib目录,然后运行 JDK 1.6 命令 "java -j ...
随机推荐
- 【hihoCoder】每周一题(从week 220开始)
2018/9/17-2018/9/23 week 220 push button I 题目链接:https://hihocoder.com/contest/hiho220/problem/1 有N个 ...
- 转帖 maven(一) maven到底是个啥玩意~
转载自:https://www.cnblogs.com/whgk/p/7112560.html 我记得在搞懂maven之前看了几次重复的maven的教学视频.不知道是自己悟性太低还是怎么滴,就是搞不清 ...
- Debug - SpringBoot - Error starting ApplicationContext. To display the auto-configuration report re-runyour application
Error log 2019-12-07 22:33:03.959 ERROR 3760 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : ** ...
- 【转】SpringMVC整合websocket实现消息推送及触发
1.创建websocket握手协议的后台 (1)HandShake的实现类 /** *Project Name: price *File Name: HandShake.java *Packag ...
- django 工具类配置
好久没发新博客,凑个数... django-debug-toolbar 介绍 django-debug-toolbar 是一组可配置的面板,可显示有关当前请求/响应的各种调试信息,并在单击时显示有关面 ...
- java poi导出Excel合并单元格并设置边框
import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; i ...
- spark的任务调度模式
spark任务调度和资源分配 1.Spark调度模式 FIFO和FAIR Spark中的调度模式主要有两种:FIFO和FAIR. 默认情况下Spark的调度模式是FIFO(先进先出),谁先提交谁先执行 ...
- sqlmap用户手册详解【实用版】
网上的sqlmap教程很多,但是我自己备忘小笔记都是在我的电脑上存着了,万一我要出去玩的时候,有点忘了,还得再百度翻翻,还不如发到我自己知乎上,忘了立马一看就记着了.虽说我的sqlmap备忘小笔记汇总 ...
- JAVA并发工具类---------------(Fork/Join)
Fork/Join 分而治之 将一个大任务分成数个小任务执行,然后将这些小人物执行后的结果进行join汇总: (假设:你要计算1到1000的总和,你可以把它分成1-100,101-200,...... ...
- Tomcat服务器配置参考
Coyote HTTP/1.1 Connector 概述 Coyote HTTP/1.1 Connector元素是一个支持HTTP/1.1协议的Connector组件.它使Catalina除了能够执行 ...