当前位置:   article > 正文

Prettier 代码格式化工具使用详解_.prettierignore

.prettierignore

目录

什么是 Prettier?

安装 Prettier

配置 Prettier

使用 Prettier

Prettier配合EditorConfig使用说明

与ESLint对比


什么是 Prettier?

借用官方的话来说,Prettier 是一个固执的代码格式化程序,它删除所有原始样式*并确保所有输出的代码符合一致的样式。

所以,Prettier 是一个代码格式化工具,可以在多人协作开发中能让每一行代码保持一致的风格,Prettier 是一种代码风格指南,Prettier 提供了很多的配置项和API,你可以有选择的配置你想要的代码风格,并使用 Prettier 来进行统一格式处理。

Prettier 支持:

安装 Prettier

指令:

  1. npm install --save-dev --save-exact prettier
  2. yarn add --dev --exact prettier

配置 Prettier

创建配置文件,指令:

echo {}> .prettierrc.js

运行命令会生成 .prettierrc.js 文件,如果你的编辑器是 vscode ,那么他会自动读取 .prettierrc.js 文件中的配置,并以此配置来格式化你的代码,具体的配置规则如下:

  1. module.exports = {
  2. // 每行最多字符数,默认80
  3. printWidth: 130,
  4. // 用制表符(tab)不是空格缩进行
  5. // 如果为true,则取编辑器tabSize值
  6. // 安装editorconfig编辑器插件并配置文件,则取 editorConfig 文件中设置的值
  7. // 具体取indent_size或者tab_width,依据indent_style值来决定
  8. // 如果为false,则取值为tabWidth值,但是有问题,经常需要重启编辑器才生效
  9. useTabs: false,
  10. // 指定每个缩进级别的空格数
  11. tabWidth: 4,
  12. // 在每条语句的末尾添加一个分号 默认true
  13. semi: false,
  14. // 使用单引号代替双引号 默认false
  15. singleQuote: true,
  16. // 引用对象中的属性,对象key添加引号方式 as-needed仅在需要时在对象属性周围添加引号
  17. quoteProps: 'as-needed',
  18. // 有效的尾随逗号 es5 中有效的尾随逗号(默认) | none 没有逗号 | all 尾随逗号
  19. trailingComma: 'none',
  20. // 在对象文字中的括号之间打印空格
  21. bracketSpacing: true,
  22. // 决定html元素首元素右侧尖括号(>)是否换行,不包含自闭合元素 false另起一行
  23. bracketSameLine: false,
  24. // 箭头函数参数周围包含括号 always有括号(默认) avoid无括号
  25. arrowParens: 'always',
  26. // 规定使用哪一种解析器
  27. // Prettier 会自动从输入文件路径推断解析器,因此您不必更改此设置
  28. // parser: require("./my-parser")
  29. // 是否缩进Vue文件中的<script>和<style>标签,
  30. // 不缩进可以保存缩进级别,但可能破坏编辑器中的代码折叠(默认false)
  31. vueIndentScriptAndStyle: true,
  32. // 行尾形式 lf|crlf|cr|auto 默认lf
  33. endOfLine: 'auto',
  34. }

 常用的配置如上所示,更多细节配置及使用使用方法参见 Prettier 官方文档

同样,你也可以定义不需要被格式化的文件集合,创建 .prettierignore 文件,配置你不需要格式化的文件,具体的配置规则同 .gitignore 文件,因为 .prettierignore 基于 .gitignore 和 .eslintignore,如:

  1. /dist/*
  2. .local
  3. .output.js
  4. /node_modules/**
  5. **/*.svg
  6. **/*.sh
  7. /public/*

到此 Prettier 配置完毕,更多详细配置请参见官方文档。

如果你同时使用 ESLint,请安装 eslint-config-prettier 以使 ESLint 和 Prettier 相互配合。它关闭所有不必要的或可能与 Prettier 冲突的 ESLint 规则。

使用 Prettier

指令方式

  1. // 格式化所有文件
  2. npx prettier --write .
  3. // 格式化app目录下的所有文件
  4. prettier --write app/

配合编辑器自动运行: 

在vscode中,首先你应该安装 Prettier 插件,Prettier - Code formatter 插件。

其次,应该定义编辑器的默认格式化程序,如下:

  1. // 为了确保这个扩展被其他你可能已经安装的扩展使用,确保将它设置为你的VS Code设置中的默认格式化器
  2. // 此设置可以针对所有语言或者特定语言进行设置
  3. // 设置编辑器默认格式化器
  4. // 注:设置编辑器默认格式化使用prettier后不影响eslint的正常使用
  5. "editor.defaultFormatter": "esbenp.prettier-vscode",
  6. // 设定特定语言
  7. "[vue]": {
  8. "editor.defaultFormatter": "esbenp.prettier-vscode"
  9. },
  10. "[javascript]": {
  11. "editor.defaultFormatter": "esbenp.prettier-vscode"
  12. }

如果您想在特定语言上禁用 Prettier,您可以创建一个.prettierignore文件,也可以使用 VS Code 的editor.defaultFormatter设置。 

  1. // 对除 Javascript 之外的所有语言使用 Prettier
  2. {
  3. "editor.defaultFormatter": "esbenp.prettier-vscode",
  4. "[javascript]": {
  5. "editor.defaultFormatter": "<another formatter>"
  6. }
  7. }
  1. // 仅将 Prettier 用于 Javascript
  2. {
  3. "editor.defaultFormatter": "<another formatter>",
  4. "[javascript]": {
  5. "editor.defaultFormatter": "esbenp.prettier-vscode",
  6. // 配置javascript(某一个特定语言的配置) 保存自动格式化 --示例配置
  7. // "editor.formatOnSave": false,
  8. }
  9. }

配置编辑器在保存的时候格式化文件

  1. // prettier与ESLint不同的一点就在于prettier需要启用编辑器保存自动格式化功能才可用
  2. "editor.formatOnSave": true,

接下来就可以正常使用 Prettier 来格式化你的代码了。

更多编辑器使用配置,代码格式配置请查阅官方文档

Prettier配合EditorConfig使用说明

如果你不知道什么是editorConfig,或者不知道怎么用,请看EditorConfig 使用详解

editorconfig 和 prettier 其实是相辅相成的,是互不矛盾的,共同协作来格式化代码。

editorConfig 中 indent_style 控制的是:编辑器使用制表符(tab)缩进,还是空格(space)缩进,控制编辑器的缩进风格。

prettier 中的useTabs 控制的是:是否使用制表符缩进,而不使用空格。

如果使用制表符缩进,即 useTabs 值为 true,如果配置了editorconfig 文件,并安装editorconfig 插件,则编辑器缩进距离取值为 editorconfig 文件配置的值。如果 indent_style = space,则先取 indent_size 的值,如果没有则取 tab_width 的值;如果 indent_style = tab,则先取 tab_width 的值,如果没有则取 indent_size 的值。如果 useTabs 值为 false,则取 prettier 文件中 tabWidth 的值。

如果没有安装editorconfig 插件,则 useTabs 为 true,取值为编辑器 tabSize 值,如果 useTabs 为 false,取值为 tab_width 值。

优先级说明:

editorConfig 的优先级高于编辑器设置的值,前提是编辑器安装了EditorConfig插件。

prettier 中 useTabs 的优先级高于 editorConfig 中的 indent_style。

与ESLint对比

 prettier 与 ESLint/TSLint/stylelint 等相比如何?

Linter 有两类规则:

  • 格式规则

例如:max-len、no-mixed-spaces-and-tabs、keyword-spacing、comma-style等。

Prettier 减轻了对这一整类规则的需求!Prettier 将以一致的方式从头开始重新打印整个程序,因此程序员不可能再在那里犯错

  • 代码质量规则

例如:no-unused-vars , no-extra-bind , no-implicit-globals , prefer-promise-reject-errors等。

Prettier 对这些规则没有任何帮助。它们也是 linter 提供的最重要的工具,因为它们很可能会捕获您代码中的真正错误!

所以,可以使用Prettier 进行格式化并使用linter来捕获错误。

推荐文章:

使用Prettier统一格式化项目代码

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/599874
推荐阅读
相关标签
  

闽ICP备14008679号