什么是ESlint
ESlint是一个代码检查工具,用来检查你的代码是否符合指定的规范 比如:=前面必须有一个空格
使用ESLint的好处就在于:多人协作时风格统一
eslint是法官,standard是法律
vue-cli工具在创建项目时提供选项,我们前面在创建项目的时候选中了它,所以它在本项目中是生效的。
JSSS 规范说明
standard style
下面是一小部分规则
字符串使用单引号
关键字后加空格If(condition){...}
函数名后加空格function name (arg) {}
使用全等=== 摒弃 == 一但需要检查 null||undefined 时使用obj == null
代码规范错误
如果你的代码不符合standard的要求,eslint会跳出来提示你,
改正错误的四种方式
手动修改
npm run lint
修改规则
插件修改 eslint插件
手动修改
根据错误提示修改,不认识的话,根据错误规则名字 去eslint规则列表网站中查找其具体含义。
建议大家手动修改错误,帮助养成良好的代码习惯,更加专业。
命令修改
npm run lint
ESLint-自定义规则
目标
了解eslint的自定义规则,能看懂eslintrc.js的配置
自定义校验
在项目根目录下面,有一个.eslintrc.js文件,它是对eslint进行配置的,其中有一个属性是专门用来设置自定义代码规则的:rules
root:true 当前项目使用这个配置文件,不会往父级目录找.eslintrc.js文件
env:{//指定eslint启动环境(vue-cli底层是node支持),brower:true也可以在浏览器中设置的
node:true
}
extends:[//拓展配置
'plugin:vue/essential',//vue里必须的规则
'@vue/standard' //使eslint集成@vue/cli脚手架里的 - standard标准
],
parserOptions:{//对新语法使用eslint
parser:'babel-eslint' //使用babel-eslint 来解析新语法ES6
},
// 这里可以配置规则
// key:规则代号
// value:具体的限定方式
// "off" or 0 - 关闭规则
// "warn" or 1 将规则视为一个警告,不会影响退出
// "error" or 2 将规则视为一个错误,报错并且退出程序
rules:{// 自定义规则,其实上面集成后有很多内置的规则,这里可以进行规则的一些修改
'no-console':process.env.NODE_ENV === 'production' ? 'warn' : 'off' //上线环境打印就报警告,开发环境关闭此规则
'no-debugger':process.env.NODE_ENV === 'production' ? 'warn' : 'off' //debugger 可以终止代码运行
}
rules是一个对象,以键值对的格式来约定规则:
键名是规则名(可在报错信息和ESLint官网查看)
值是这条规则的具体说明,最常见的有off,warn,error
关闭多行空格
rules中配置
‘no-multiple-empty-lines’:‘off’
修改了配置文件一定要重启项目
ESLint-在VScode中使用插件
目标
掌握配合vscode中的esint插件一起工作的方法:
0 有错误立即提示(显示波浪线)
1 ctrl+s保存时立即自动修正错误
安装插件
ESLint非常非常重要
:在VScode打开项目时,将脚手架工程作为vscode根目录,因为eslint要使用配置文件.eslintrc
eslint自动格式化修正代码
五个步骤
设置
工作区
切换到代码视图(右上角)
补充内容
.vscode 里面会多出目录,刚才的设置在这里
{
"eslint.enable": true,
"eslint.run": "onType",
"eslint.options": {
"extensions": [
".js",
".vue",
".jsx",
".tsx"
]
},
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
}
eslint.run - 运行eslint检验的时刻(onSave保存)(onType 输入时候)
editor.codeAcrionsOnSave - 控制在保存时运行代码操作时修复哪些问题
source.fixAll.eslint - 自所有插件的所有可自动修复的ESLint错误都在保存时修复
更多常用的在
备注:可能遇到的问题
ctrl+s保存不自动格式化
打开一个代码文件,右下角有个ESLint,如果是图示这样,点击一下然后弹出来的对话框选择AnyWhere在任意处生效(启动vscode中的eslint)
变成v就代表启动着呢
自动缩进
如果你的vscode中用其他扩展 启用 自动格式化功能,则有可能与eslint的规则冲突!
解决方案:format on save 不要勾选
tabsize Detect Indentation
一保存,单引变双引
原因:vetur插件和eslint冲突, 修改eslint插件配置, 把这里代码覆盖进去