参考文章:
怎样在vue项目下添加ESLint
eslint中文网
eslint 的三大通用规则
首先当然是新建一个项目了。假设项目已经建好了,下面开始配置
1. 安装eslint
如果你还没有全局安装eslint
,第一件事当然是安装eslint
npm i -g eslint
复制代码
2. 初始化eslint
eslint --init
复制代码
这个命令会生成一个.eslintrc
的文件,有几种形式。选自己习惯的形式就行,我的生成的是一个.eslintrc.js
文件,如下:
module.exports = {
"extends": "standard"
};
复制代码
然后就可以简单的lint某个文件了:
eslint yourfile.js
复制代码
在项目里新添加eSLint
然后找到package.json
,把ESLint相关的依赖加进去,当然一个个安装也是可以的,只要你不嫌麻烦
"babel-eslint": "^7.1.1",
"eslint": "^3.19.0",
"eslint-friendly-formatter": "^3.0.0",
"eslint-loader": "^1.7.1",
"eslint-plugin-html": "^3.0.0",
"eslint-config-standard": "^10.2.1",
"eslint-plugin-promise": "^3.4.0",
"eslint-plugin-standard": "^3.0.1",
"eslint-plugin-import": "^2.7.0",
"eslint-plugin-node": "^5.2.0",
复制代码
执行npm install
就好了
修改默认规则
关于eslint
配置文件的详解,可以点击这里查看,这里只简单说下 eslint规则详情
extends
继承某个已配置好的规则,从某个现有的规则上进行扩展。一般比较流行的eslint规则有三种:Google 标准、airbnb标准、standard标准。
Google 标准安装
npm install eslint eslint-config-google -g
复制代码
airbnb标准安装
airbnb
标准,它依赖eslint
, eslint-plugin-import
, eslint-plugin-react
, and eslint-plugin-jsx-a11y
等插件,并且对各个插件的版本有所要求。
你可以执行以下命令查看所依赖的各个版本:
npm info "eslint-config-airbnb@latest" peerDependencies
复制代码
你会看到以下输出信息,包含每个了每个plugins的版本要求
{ eslint: '^3.15.0',
'eslint-plugin-jsx-a11y': '^3.0.2 || ^4.0.0',
'eslint-plugin-import': '^2.2.0',
'eslint-plugin-react': '^6.9.0'
}
复制代码
知道了每个plugins的版本要求后,代入以下命令执行安装即可使用:
npm install eslint-config-airbnb eslint@^#.#.# eslint-plugin-jsx-a11y@^#.#.# eslint-plugin-import@^#.#.# eslint-plugin-react@^#.#.# -g
复制代码
standard标准安装
Standard标准,它是一些前端工程师自定的标准。
npm install eslint-config-standard eslint-plugin-standard eslint-plugin-promise -g
复制代码
rules
eslint
启用的规则列表。你可以重写eslint
的规则,定义级别:
module.exports = {
rules: {
'no-console': 1
}
};
复制代码
左边是规则,右边是级别。1为警告,2为报错,0为关闭。 规则详情请参考这里
React使用eslint
1. 安装 eslint-plugin-react
npm i eslint-plugin-react
复制代码
2. 修改 .eslintrc.js
修改.eslintrc
的代码:
module.exports = {
"extends": "standard",
"env": {
"browser": true,
"es6": true,
},
"parser": "babel-eslint",
"parserOptions": {
"ecmaFeatures": {
"experimentalObjectRestSpread": true,
"jsx": true
},
"sourceType": "module",
"ecmaVersion": 2018
},
"plugins": [
"react"
],
}
复制代码
关注前端撸客公众号