Vue使用ESLint+Prettier格式化代码
前言
代码规范是程序员的根本,入门第一步,从规范代码开始,而ESLint就是一款检查JavaScript代码风格/错误的工具,其他类似的还有TSLint、stylelint。
ESLint包含三个功能:
- 检查语法
- 发现错误
- 格式化代码
而下面介绍的Prettier就只有格式化代码这个功能。Perttier只是一个代码格式化工具,只负责格式化代码。那么为什么要把ESLint的格式化代码交给Perttier来做呢?
- 更好更先进的代码规范
- 支持更多的语言
安装依赖
$ npm install @vue/cli-plugin-eslint @vue/eslint-config-prettier eslint-plugin-prettier eslint-plugin-vue prettier eslint babel-eslint @vue/eslint-config-airbnb --save-dev
"devDependencies": {
"@vue/cli-plugin-eslint": "^4.1.0",
"@vue/eslint-config-airbnb": "^4.0.0",
"@vue/eslint-config-prettier": "^6.0.0",
"babel-eslint": "^10.0.3",
"eslint": "^5.16.0",
"eslint-plugin-prettier": "^3.1.3",
"eslint-plugin-vue": "^5.0.0",
"prettier": "^2.0.5",
}
修改配置文件
以package.json为例,这是我自己写的一个简单配置,在package.json写入以下配置:
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/essential",
"@vue/airbnb",
"plugin:prettier/recommended"
],
"rules": {
"prettier/prettier": "error",
"no-console": 0,
"no-debugger": 0,
"comma-dangle": 0,
"indent": 0,
"operator-linebreak": 0,
"linebreak-style": [
0,
"error",
"windows"
],
"max-len": [
"error",
{
"code": 500
}
]
},
"parserOptions": {
"parser": "babel-eslint"
}
},
"prettier": {
"singleQuote": true, // 使用单引号,默认为false双引号
"printWidth": 115, // 字符串换行阈值
"proseWrap": "always" // 是否换行
}
与VSCode集成
-
在VSCode的扩展商店中下载一下两个插件:
- ESLint
- Prettier
-
下载安装好之后,按alt+shift+F格式化代码,顶部会弹出一个窗口让你为Vue文件选择默认的格式化程序,这里我们选择Prettier - Code formatter,使用Prettier来格式化代码:
-
修改VSCode的settings.json文件,让VSCode能够在保存的时候自动格式化代码:
"editor.codeActionsOnSave": { "source.fixAll": true }
与Webstorm集成
-
在设置→插件里面下载Prettier:
-
然后还是在设置里面
-
Languages & Frameworks → JavaScript → Prettier,Prettier package选择项目中的Prettier:
-
Tools→File Watchers里面点击左下角加号选择Prettier:
-
File Type选择Any,其他默认即可:
-
最后点击Apply,OK
-
写在最后
有了prettier我们保存后就能自动格式化代码,也不用为了项目代码不统一和同事争论得面红耳赤,因为我们统一使用prettier的风格。可能刚开始有些地方你看不惯,不过不要紧,想想这么做都是为了团队和睦,世界和平,我们做出的牺牲都是必要的。而且prettier的样式风格已经在很多大型开源项目中被采用,比如vue、react、webpack、babel。