--------eslint参数说明:-------------
参考地址: https://juejin.cn/post/6975061007123087368
parse — 指定解析器
parserOptions — 指定解析器选项
env — 指定脚本的运行环境
env: {
browser: true,
node: true,
es6: true
},
root — 为 true 时,停止向上查找父级目录中的配置文件
globals — 脚本在执行期间访问的额外的全局变量
globals: {
_: true,
$: true,
Swiper: true,
nie: true,
__LOCAL: true,
__DEBUG: true,
__SERVER: true
}
extends: ['plugin:prettier/recommended', 'eslint:recommended'], // 禁用了eslint
rules — 在此处添加您的自定义规则
而 vue-eslint-parser 只能解析 template 的内容,但是不会解析 JS,因此还需要对解析器做如下配置:增加babel-eslint 解析器
vscode中的 prettier eslint插件格式突然失效了 eslint 8升级了一些api,导致不兼容,然后当前这个插件也即时做了处理,
只不过他们把最新版本的代码给当作主版本了,像我们这种eslint 8以下的项目,需要降级prettier eslint 版本就好了3.1.0
说明:
配置解析器和解析参数 ESLint 的解析器,早期的时候用的是 Esprima,
后面基于 Esprima v1.2.2 版本开发了一个新的解析器 Espree,并且把它当做默认解析器。
eslint默认的parser 只能转换js, 默认支持ES5的语法,通过parserOptions传递参数和解析器扩展
"parserOptions": {
"ecmaVersion": 6, // 开启更高版本的ES校验
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
}
}
支持 ES6 语法并不意味着同时支持新的 ES6 全局变量或类型(比如 Set 等新类型)。对于 ES6 语法,使用 { "parserOptions": { "ecmaVersion": 6 } };对于新的 ES6 全局变量,使用 { "env":{ "es6": true } }. { "env": { "es6": true } } 自动启用es6语法,但 { "parserOptions": { "ecmaVersion": 6 } } 不自动启用es6全局变量。
解析器选项可以在 .eslintrc.* 文件使用 parserOptions 属性设置。可用的选项有:
vue 官方提供了一个 ESLint 插件 eslint-plugin-vue(https://eslint.vuejs.org/user-guide/#installation),它提供了 parser 和 rules。parser 为 vue-eslint-parser,rules 为 https://eslint.vuejs.org/rules/。
ecmaVersion - 默认设置为 3,5(默认), 你可以使用 6、7、8、9 或 10 来指定你想要使用的 ECMAScript 版本。你也可以用使用年份命名的版本号指定为 2015(同 6),2016(同 7),或 2017(同 8)或 2018(同 9)或 2019 (same as 10)
sourceType - 设置为 "script" (默认) 或 "module"(如果你的代码是 ECMAScript 模块)。
ecmaFeatures - 这是个对象,表示你想使用的额外的语言特性:
globalReturn - 允许在全局作用域下使用 return 语句
impliedStrict - 启用全局 strict mode (如果 ecmaVersion 是 5 或更高)
jsx - 启用 JSX
experimentalObjectRestSpread - 启用实验性的 object rest/spread properties 支持。(重要:这是一个实验性的功能,在未来可能会有明显改变。 建议你写的规则 不要 依赖该功能,除非当它发生改变时你愿意承担维护成本。)