在开发大型项目中,经常都是需要多人合作的。相信大家一定都非常头疼于修改别人的代码的吧,而合理的使用eslint规范可以让我们在代码review时变得轻松,也可以让我们在修改小伙伴们的代码的时候会更加清晰。但是往往在开发过程中由于我们个人习惯的不通经常会先关掉一些eslint的属性,又或者每个人对于eslint的配置也是不一样的,所以当我们统一配置eslint之后,我们可以通过vscode或者webstorm插件配置eslint规范,自动修改关于eslint的问题。
一、eslint规范
使用vue-cli3搭建vue项目初始化时,会有选择eslint的设置,一般情况下,设置使用 'eslint:recommended',也可以在.eslintrc.js配置其他觉得适合项目的一些eslint规范(详细eslint规则参考:https://cn.eslint.org/docs/rules/):
module.exports = {
root: true,
env: {
node: true,
},
extends: [
'plugin:vue/essential',
'@vue/airbnb',
'eslint:recommended'
],
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'no-trailing-spaces': 'error', // 禁止行尾空格
'linebreak-style': [0, 'error', 'windows'],
'import/extensions': 'off',
"comma-dangle": ["error", "never"], // 禁止行尾逗号
"semi": ["error", "never"], // 禁止分号
"space-before-blocks": "error", // 强制在块之前使用一致的空格
"comma-spacing": "error", // 逗号后面加空格
'indent': [2, 2, {
'SwitchCase': 1
}], //代码首行缩进规定,switchcase的设置比较特别,如果直接设置'indent':2,使用代码自动校验会发现switch代码段无法校验通过
},
parserOptions: {
parser: 'babel-eslint',
},
};
二、自动修复eslint报错
vscode安装插件vetur,prettier,eslint配置相对应的eslint规范可自动帮我们修复一些eslint报错问题,以下是一些基本的配置(配置于vscode-Open Setting(Json)):
"vetur.format.defaultFormatter.js": "prettier-eslint",
"vetur.format.defaultFormatter.html": "js-beautify-html",
"vetur.format.defaultFormatterOptions": {
"wrap_attributes": "force-aligned"
},
"editor.detectIndentation": false,
// 重新设定tabsize
"editor.tabSize": 2,
// "editor.formatOnSave": true, // 保存时自动格式化 --vscode编辑器自带自动格式化会与设置的eslint规范有所冲突导致eslint报错
"eslint.autoFixOnSave": true, //保存时使用eslint规范自动格式化
// 添加 vue 支持
"eslint.validate": [
"javascript",
"javascriptreact",
{
"language": "vue",
"autoFix": true
}
],
"prettier.eslintIntegration": true, // 让prettier使用eslint的代码格式进行校验 (如果未安装prettier或者不需要prettier格式化可以不用设置prettier这些属性)
"prettier.semi": false, // 去掉代码结尾的分号
"prettier.singleQuote": true, // 使用带引号替代双引号
新版eslint.autoFixOnSave已弃用,关于保存时自动格式化配置,更新如下
/**旧版本配置---保存自动格式化**/
// "eslint.autoFixOnSave": true, //保存时使用自动格式化
// // 添加 vue 支持
// "eslint.validate": [
// "javascript",
// "javascriptreact",
// {
// "language": "vue",
// "autoFix": true
// }
// ],
/**新版本配置---保存自动格式化**/
//autoFixedOnSave 设置已废弃,采用如下新的设置
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"eslint.format.enable": true,
//autoFix默认开启,只需输入字符串数组即可
"eslint.validate": ["javascript", "vue", "html"],