这篇文章主要为大家详细介绍了vue+webpack中配置ESLint,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!
协同开发过程中,经常感受到来自代码检视的恶意。代码习惯不一致,看半天;居然提交低级错误,我的天(╯‵□′)╯︵┻━┻!...研究了一番,决定使用ESLint来做代码规范检查。
安装相关npm包
代码如下:
yarn add eslint babel-eslint eslint-plugin-vue eslint-friendly-formatter --dev
增加文件
修改webpack配置文件
代码如下:
module.exports = {
module: {
rules: [
test: /\.(js|vue)$/,
loader: "eslint-loader",
enforce: "pre",
//指定检查的目录
include: [resolve(__dirname, 'src')],
//eslint检查报告的格式规范
options: {
formatter: require("eslint-friendly-formatter")
}
]
}
}
以.eslintrc.js为例
代码如下:
module.exports = {
//一旦配置了root,ESlint停止在父级目录中查找配置文件
root: true,
//解析器
parser: "babel-eslint",
//想要支持的JS语言选项
parserOptions: {
//启用ES6语法支持(如果支持es6的全局变量{env: {es6: true}},则默认启用ES6语法支持)
//此处也可以使用年份命名的版本号:2015
ecmaVersion: 6,
//默认为script
sourceType: "module",
//支持其他的语言特性
ecmaFeatures: {
//...
}
},
//代码运行的环境,每个环境都会有一套预定义的全局对象,不同环境可以组合使用
env: {
es6: true,
browser: true,
jquery: true
},
//访问当前源文件中未定义的变量时,no-undef会报警告。
//如果这些全局变量是合规的,可以在globals中配置,避免这些全局变量发出警告
globals: {
//配置给全局变量的布尔值,是用来控制该全局变量是否允许被重写
test_param: true
},
//支持第三方插件的规则,插件以eslint-plugin-作为前缀,配置时该前缀可省略
//检查vue文件需要eslint-plugin-vue插件
plugins: ["vue"],
//集成推荐的规则
extends: ["eslint:recommended", "plugin:vue/essential"],
//启用额外的规则或者覆盖默认的规则
//规则级别分别:为"off"(0)关闭、"warn"(1)警告、"error"(2)错误--error触发时,程序退出
rules: {
//关闭“禁用console”规则
"no-console": "off",
//缩进不规范警告,要求缩进为2个空格,默认值为4个空格
"indent": ["warn", 2, {
//设置为1时强制switch语句中case的缩进为2个空格
"SwitchCase": 1,
//分别配置var、let和const的缩进
"VariableDeclarator": { "var": 2, "let": 2, "const": 3 }
}],
//定义字符串不规范错误,要求字符串使用双引号
quotes: ["error", "double"],
//....
//更多规则可查看http://eslint.cn/docs/rules/
}
}
使用JavaScript注释启用或禁止指定规则
代码如下:
/* eslint-disable */
alert('message');
/* eslint-enable no-alert, no-console*/
...
层叠配置
ESlint支持层叠配置,检测文件的规则是其目录层级结构中所有.eslintrc文件的组合,当规则冲突的时候,离检测文件最近的规则优先。
默认情况下,ESlint会沿着父级目录网上寻找配置文件,直到根目录。如果配置文件中有root: true,则ESlint会停止在父级目录中查找。
出现错误:Use the latest vue-eslint-parser。
解决方法: 把parser: "babel-eslint"移动到parserOptions中。
代码如下:
{
//parser: "babel-eslint",
parserOptions: {
parser: "babel-eslint",
//...
}
}
问题原因: eslint-plugin-vue中的很多规则都需要vue-eslint-parser检查<template>, vue-eslint-parser和babel-parser二者有冲突。
参考链接
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持四海网。
本文来自:http://www.q1010.com/184/6614-0.html
注:关于vue+webpack中配置ESLint的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。
关键词:vue.js
四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。