首先把需要用到的 官方文档链接放在此:
eslint核心参数配置中文版:http://eslint.cn/docs/user-guide/command-line-interface
最核心的eslint规则配置(js的语法规则):http://eslint.cn/docs/rules/
prettier的配置官方文档英文版:https://prettier.io/docs/en/options.html
分享一个网友分享的,还不错,我这里更具体的来总结一下:https://www.jianshu.com/p/bfc7e7329cff
在vue-cli3的配置里边我们需要配置2个软件,
一个是eslint(js语法校验,最核心的)
一个是 prettier (用来美化代码自动格式化的js、vue、html代码的工具)----主要和vscode配合使用!
先来讲第一步:eslint的配置规则:如果你是用Vue3 ui命令自动生成的开发环境,那么我们配置eslint是在根目录下的package.json文件的"eslintConfig"属性下配置即可!如果是其他,那就可能要找到根目录下的.eslintrc.*文件(如.eslintrc.js)
这里分享package.json配置的方法(.eslintrc.*配置一样):
eslint的配置分为2个部分,第一部分是主要配置属性,第二部分专门针对"rules"配置!
特别注意一下这里的插件: "standard"插件代表的是eslint的standard插件都要安装,用Vue ui么有初始化选择了standard安装的话(也只会安装eslint-config-standard),eslint-plugin-standard必须自己手动安装,手动安装的一些依赖包如下,都安装了,防止莫名的一些问题:
-
eslint
-
babel-eslint
-
eslint-plugin-html
-
eslint-config-standard
-
eslint-plugin-standard
-
eslint-plugin-promise
"eslintConfig": {
"root": true,////此项是用来告诉eslint找当前配置文件不能往父级查找
"env": {
"node": true//此项指定环境的全局变量,下面的配置指定为node环境
},
//extends是扩展插件的意思,2个插件Vue必须安装!
"extends": [// 此项是用来配置vue.js风格,就是说写代码的时候要规范的写,如果你使用vs-code我觉得应该可以避免出错
"plugin:vue/essential",
//这里的插件是:eslint的(eslint-config-standard和eslint-plugin-standard及相关依赖)
"standard"
],
"parserOptions": {
"parser": "babel-eslint"//此项是用来指定eslint解析器的,解析器必须符合规则,babel-eslint解析器是对babel解析器的包装使其与ESLint解析
},
//第二部分最核心的语法规则(第一个参数数字代表含义:0-"off",1-"warn",2-"error")
"rules": {//规则配置写在这里
"no-multiple-empty-lines": [1, {"max": 2}],//空行最多不能超过2行
"no-mixed-spaces-and-tabs": ["error", "smart-tabs"]//当 tab 是为了对齐,允许混合使用空格和 tab。
"semi": [ "2", "always"],//必须分号结束!
"indent": ["0",4] //tab键4个空格
... 其他规则自己添加!!
},
}
}
"rules"规则详细部分参考官方文档中文版:http://eslint.cn/docs/rules/
"off"或者0 //关闭规则关闭
"warn"或者1 //在打开的规则作为警告(不影响退出代码)
"error"或者2 //把规则作为一个错误(退出代码触发时为1)
截止到现在,我们package.json配置Eslint已经完毕!
第二部分,我们配置 prettier在vscode中,格式化我们的代码,更漂亮!
这里就简单了,把这段代码添加到我们的seting里边即可!务必注意红色框里边的部分,这里的tab很重要,根据自己的习惯啦,我喜欢tab4个空格的,这里的配置参考官方文档:prettier的配置官方文档英文版:https://prettier.io/docs/en/options.html
/*
*这一段是Vue3的配置,勿删!!!
*/
"vetur.format.defaultFormatter.js": "vscode-typescript",
"vetur.format.defaultFormatter.html": "js-beautify-html",
/*
*eslint是JavaScript的语法规则校验器!
*/
"eslint.validate": [
"javascript",
"javascriptreact",
{
"language": "html",
"autoFix": true
},
{
"language": "vue",
"autoFix": true
}
],
// 保存自动修复
"eslint.autoFixOnSave": true,
// jsx自动修复有问题,取消js的format
"editor.formatOnSave": true,
//默认JavaScript格式化程序(为了更美观)
"javascript.format.enable": true,
/*
*prettier插件的配置是格式化代码,更漂亮!
*/
//如果为真,将使用单引号而不是双引号
"prettier.singleQuote": false,
//点击保存时,根据 eslint 规则自定修复,同时集成 prettier 到 eslint 中
"prettier.eslintIntegration": true,
//prettier自动格式化tab的空格数量!
"prettier.tabWidth": 4,
// Indent lines with tabs
"prettier.useTabs": true,