Lint笔记-ESLint
由于尽量不想让自己在编码路上留下的足迹会让后人觉得像屎一样…年初到现在断断续续的都在想办法提升个人的工程能力
关于Lint最早是前两年写了一段时间的nodejs,然后知道了一个叫ESLint的玩意…这东西好用啊,让代码可以不太像屎一样了所以最近就捡起来了,当然工具是辅助最重要的还是基础。
伴随着格言 do not BB,show me code。刚好同事让我帮忙跟他弄一下ESLint,那我想着干脆整个文档,那不就简单了,大家都能用。
以下就是跟我们项目贴合度比较高的ESLint简单的配置教程出来(为博客凑个数,话说确实太懒了文章写的少),然后有时间再分析其原理的东西。
ESLint 配置
安装ESLint相关库
npm install -g eslint
// 用了 React 需要再安一个babel-eslint
npm install -D eslint babel-eslint
//如果要用大厂的需安装对应的库,比如用airbnb的
npm install -D eslint-config-airbnb
// 因为要校验 Reac 语法,所以这里需要下载一个 React 语法规则的包
npm install -D eslint-plugin-react
可能不全,但是总之一句话,别想太多提示差什么包就装什么包就对了。
生成配置文件
node_modules/.bin/eslint --init
//如果全局安装了 可以直接
eslint --init
会出现一个界面,根据模板创建ESLint的配置文件,最终填完之后大概就是下面这样
演示一把:
选一种方式生成配置文件,可根据需求选择,建议第一个问题选第二种Use a popular style guide(使用大厂的),然后选一个,通常用airbnb的. 跟着界面依次填写下面的内容,最终会在你根目录下生成一个文件名为.eslintrc.js的配置文件 。
根据模板创建配置文件,可以选个模板,也可以自己回答问题
PS E:\eslint> eslint --init
? How would you like to configure ESLint? Use a popular style guide
? Which style guide do you want to follow? (Use arrow keys)
> Airbnb (https://github.com/airbnb/javascript)
Standard (https://github.com/standard/standard)
Google (https://github.com/google/eslint-config-google)
比如选airbnb
module.exports = {
"extends": "airbnb"
};
也可以自己回答问题来创建
> eslint --init
? How would you like to configure ESLint? Answer questions about your style
// 是否校验 Es6 语法
? Are you using ECMAScript 6 features? Yes
// 是否校验 Es6 模块语法
? Are you using ES6 modules? Yes
// 代码运行环境,Browser 指浏览器
? Where will your code run? Browser
// 是否校验 CommonJs 语法
? Do you use CommonJS? Yes
// 是否校验 JSX 语法
? Do you use JSX? Yes
// 是否校验 React 语法
? Do you use React? Yes
// 首行空白选择 Tab 键还是 Space
? What style of indentation do you use? Tabs
// 字符串使用单引号 'string' 还是双引号 "string"
? What quotes do you use for strings? Double
// 操作系统
? What line endings do you use? Windows
// 每行代码结尾是否校验加分号 ;
? Do you require semicolons? Yes
// 以 .js 格式生成配置文件
? What format do you want your config file to be in? JavaScript
PS:也可以直接在根目录下手动建一个文件.eslintrc.js(后缀也可以是JSON、YAML等),然后手动写配置
贴一个我的(手动写的)
如果只用于JS语法类扫描,可参考但不建议直接使用,因为配置的东西有点多
module.exports = {
"extends": ["airbnb", "prettier","prettier/react"],
"parser": "babel-eslint",
//如果我们想对一些非标准 JS 语法添加 Lint 怎么办呢?有办法,ESLint 还支持我们自定义 parser。 parser是为了非标准语法能生的,plugin是针对符合js语法的规则集合的扩展。
"plugins": [
"prettier",
"react",
"jsx-a11y",
"import"],
//自定义规则,可以覆盖掉extends的配置。
"rules": {
"jsx-a11y/click-events-have-key-events":0,
"jsx-a11y/interactive-supports-focus":0,
"jsx-a11y/no-static-element-interactions ":0,
// 'one-var':2,//"error" 或 2 开启规则,使用错误级别的错误
// 强制驼峰命名规则
"camelcase": [0, {
"properties": "never"
}],
"prettier/prettier": ["error"],
"react/prop-types": ["warn"],
"react/jsx-uses-react": "error",
"react/jsx-uses-vars": "error",
"no-unused-vars": 1,//"warn" 或 1 - 开启规则,使用警告级别的错误
"global-require": 0,//"off" 或 0 - 关闭规则
"prefer-destructuring": 0,
"class-methods-use-this": 0,
"react/no-unused-state": 1,
"jsx-a11y/no-static-element-interactions":0,
"import/extensions":0
},
"env":{
//定义env会带进来一些全局变量,browser会添加所有的浏览器变量比如Windows
"browser": true,
"es6": true
},
//当我们将默认的解析器从Espree改为babel-eslint的时候,我们需要指定parseOptions,这个是必须的。parserOptions ESLint 允许你指定你想要支持的 JavaScript 语言选项。默认情况下,ESLint 支持 ECMAScript 5 语法。你可以覆盖该设置,以启用对 ECMAScript 其它版本和 JSX 的支持。
"parserOptions": {
"sourceType": "module",
"ecmaFeatures": {
"jsx": true// 启用 JSX
},
"ecmaVersion": 6
},
};`
配置IDE
VSCode配置需自行上网搜索
启用ESLint插件
配置触发ESLint自动修复的快捷键
ESLint的使用方法
本文引用的内容,如有侵权请联系我删除,给您带来的不便我很抱歉。