Prettier 是一个代码格式化工具,它可以支持 js/jsx/ts/flow/json/css/less/scss 等文件格式。

为什么要使用 Prettier?

用来替代 lint 中的一些场景,比如说分号/tab缩进/空格/引号,这些在lint工具检查出问题之后还需要手动修改,而通常这样的错误都是空格或者符号之类的,这样相对来说不太优雅,利用格式化工具自动生成省时省力。

安装插件

1. 在 VSCode 的扩展搜索 Prettier - Code formatter 和 Vetur 插件并进行安装。

Vetur 是 Vue 专用插件,Prettier 格式化后的 template 排版真是丑,所以 Vue 相关的格式化我们用专业的 Vetur。

2. 创建 Prettier 配置文件

在项目根目录新建 .prettierrc 文件:

{"printWidth": 100, //每行到多少长度开始折行"tabWidth": 2, // 制表符宽度,每个层级缩进几个空格"singleQuote": true, //单引号"trailingComma": "es5", // 默认none, 可选 none|es5|all,es5 包括es5中的数组、对象,all 包括函数对象等所有可选"bracketSpacing": true, // 括号空格,在对象字面量和括号之间添加空格"semi": true, //是否在行尾加分号"arrowParens": "avoid", // 箭头函数参数括号,默认avoid 可选 avoid| always,avoid 能省略括号的时候就省略 例如x => x,always 总是有括号
}

更多配置请见官网,英语不好的可看这篇翻译。

在项目根目录新建 .prettierignore 文件(用以忽略不需要格式化的文件):

package.json
package-lock.json

3. 在 settings.json 设置 Prettier 为默认格式化工具,并且保存时自动格式化

可能VSCode里不止装了一个格式化插件,所以这里要设置一下默认格式化工具。

修改配置的时候要注意一下你是要修改用户级别的配置还是要修改工作区的配置,用户级别的配置对所有项目生效,工作区的配置只对当前项目生效。

在 Shift + Command + P 打开的命令搜索框输入 settings.json

完整的配置信息和解释你可以在 【打开默认设置(JSON)】中查看

在 settings.json 加入以下配置:

"editor.tabSize": 2,
"editor.formatOnSave": true, // 保存时自动格式化
"editor.defaultFormatter": "esbenp.prettier-vscode", // 设置默认格式化工具为 prettier
// 针对特定的语言进行单独配置
"[javascript]": {"editor.defaultFormatter": "esbenp.prettier-vscode" // 设置 javascript 的默认格式化工具
},
"[vue]": {"editor.defaultFormatter": "octref.vetur" // 使用 vetur 格式化 vue 文件
},
// Vetur 配置
"vetur.format.defaultFormatter.html": "js-beautify-html", // 格式化 Vue 中的 template
"vetur.format.options.tabSize": 2,
"vetur.format.defaultFormatterOptions": {"js-beautify-html": {"wrap_attributes": "auto", // auto、force-aligned、aligned-multiple、force-expand-multiline"wrap_line_length": 100 // 长度超过多少开始折行}
},

Vue3中用 Volar 代替 Vetur 对 Vue 代码进行格式化:因为 Vetur 会对 setup 里的代码识别错误。

"[vue]": {"editor.defaultFormatter": "Vue.volar"
},

虽然我们对 Vue 指定了特定的格式化工具(这里是 Vetur 或 Volar),不是说 Vue 代码的所有效果都是由 Vetur 或 Volar 来决定了,部分格式化效果还是受 Prettier 配置决定的,比如单引号,尾部分号等等。

到这里,Prettier 就已经安装、配置完成了!

批量格式化文件

安装

npm i -g prettier

执行命令格式化指定文件夹

prettier --config .prettierrc --write '目录或者某类型的文件'// 例子1  格式化/vueComponents文件夹下的vue、js、less文件类型的格式
prettier --config .prettierrc --write './vueComponents/**/*.{vue,js,less}'// 例子2 格式化整个vueComponents文件夹
prettier --config .prettierrc --write './vueComponents'

批量格式化适用于格式化老代码。

附言

VSCode 中,Prettier 插件使用配置文件的优先级:.prettierrc > .editorconfig > Prettier插件默认设置。

除了在 settings.json 文件中修改配置,还可以按 command + , 唤出设置界面进行修改。

Prettier + Vetur 进行Vue2项目代码格式化相关推荐

  1. ESLint+Prettier+Vetur 统一Vue项目代码风格

    前言 一.为什么要整合Eslint和Prettier? 1.对比Prettier和Linters(eslint/tslint/stylelint) Linters有两类规则: 格式化规则:如最大长度, ...

  2. 前端代码规范之代码格式化配置

    前言 由于每个前端人员的格式化配置或安装的格式化插件不一,导致在对项目开发的过程中代码风格不一,影响团队开发效率: 为了方便维护及统一代码风格制定团队的一套格式化配置,来对项目代码进行约束以及对部分问 ...

  3. 【Vue3+Vite+TS项目集成ESlint +Prettier实现代码规范检查和代码格式化】

    目录 前言 创建项目 安装初始化ESlint 安装ESlint: 初始化ESlint: 安装配置Prettier 安装prettier: 配置prettier: 配置VScode保存时自动格式化代码 ...

  4. 使用 Eslint + husky + lint-staged + Prettier 提高前端项目质量、统一项目代码风格

    使用 Eslint + husky + lint-staged + Prettier 提高前端项目质量.统一项目代码风格 Eslint 代码检查,编辑器启用 Eslint 之后,不符合规范的会自动进行 ...

  5. 使用Prettier配合TsLint/Eslint 统一前端代码格式化规则,保证代码质量

    背景 在开发前端项目时,每个人的开发习惯不同,用的IDE也不同,有的人喜欢用VSCode,有的人喜欢用Webstorm,而各个编译器默认的格式化规则有不一致,这就导致了不同IDE格式化出来的代码是不一 ...

  6. VScode配置ESLint检测语法+Prettier代码格式化

    文章目录 前言 1. ESLint 支持几种格式的配置文件 2. ESLint的数字代表 3. VSCode 默认格式化配置 4. Prettier 配置 5. 如何解决 ESLint 与 Prett ...

  7. Astyle 一键格式化项目代码

    代码格式化差异问题: 一个团队有多个开发,因开发习惯不同,开发时少添加了空格.换行等. 格式化代码时,一般会将整个文档格式化,代码提交时会发现未知的修改项. Astyle格式化工具 官网下载地址:Ar ...

  8. C/C++ 项目必读:代码格式化和静态分析检查的一站式工作流 Cpp Linter

    本篇是关于 C/C++ 代码格式化和静态分析检查的实践分享. 目前 C/C++ 语言的代码格式化和检查工具使用的最为广泛的是 LLVM[1] 项目中的 Clang-Format[2] 和 Clang- ...

  9. vscode vetur 代码格式化优化设置(亲测有用)

    原文 vscode vetur 代码格式化优化设置(亲测有用) vue 文件在使用 vetur 格式化时,会默认把标签的每一个属性单独占一行,而且标签错位,可读性很差 1.点击左下角齿轮图标 --&g ...

最新文章

  1. 解决错误:No module named ‘Cryptodome‘ 和错误rosbag.bag.ROSBagException: unsupported compression type: lz4
  2. 以下代码有什么问题(struct构造问题)
  3. 英雄传说服务器维护中,英雄传说:星之轨迹 正统《轨迹》手游无法连接服务器是什么原因...
  4. 用GNS3做PIX防火墙ICMP实验
  5. springboot学习,实现原理技术点汇总
  6. Scala学习--《Scala编程》
  7. 【软件project】之第五、六章总结
  8. 【MongoDB】使用$lookup做多表关联处理
  9. armbian 斐讯n1_树莓派/斐讯N1/ARMBIAN/安装HOME ASSISTANT
  10. linux vmware 共享文件夹共享,解决vmware上使用linux虚拟,无法共享文件的问题
  11. 机器学习算法的要点(附 Python 和 R 代码)
  12. JavaScript单选框选择操作
  13. 海伦公式求三角形垂线长度
  14. 一部值得收藏的PDA进化史
  15. 2022年5月22日【Jiawei_Z】C# 基础教程---刘铁锰 02 委托 事件 继承
  16. exe java环境未找到_Windows环境下安装jdk找不到javac.exe
  17. TP-Link WR841N V5.3 部分元件作用
  18. 汇编语言程序设计知识点
  19. Uipath Studio流程设计器介绍
  20. 利用linux shell自动顶贴

热门文章

  1. GRU时间序列数据分类预测
  2. 阿里云产品 系列(一)MaxCompute简介与使用--上
  3. hackrf前期安装日志
  4. 自动写代码?别闹了!
  5. 小红书自研KV存储架构如何实现万亿量级存储与跨云多活
  6. 作为 CIO,构建一个商业智能 BI 分析平台应该重点关注什么?
  7. 如何重置postgresql用户密码
  8. JavaSocket编程之Netty框架线程模型
  9. 联想ThinkSystem融合架构简介 - ThinkAgile SX for Nutanix
  10. 基于STM32震动感应灯