webpack项目使用eslint建立代码规范实现
首先当然是新建一个项目了。假设项目已经建好了,下面开始配置
1.安装eslint
如果你还没有全局安装eslint,第一件事当然是安装eslint
npmi-geslint
2.初始化eslint
eslint--init
这个命令会生成一个.eslintrc的文件,有几种形式。选自己习惯的形式就行,我的生成的是一个.eslintrc.js文件,如下:
module.exports={ "extends":"standard" };
然后就可以简单的lint某个文件了:
eslintyourfile.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",
执行npminstall就好了
修改默认规则
关于eslint配置文件的详解,可以点击这里查看,这里只简单说下eslint规则详情
extends
继承某个已配置好的规则,从某个现有的规则上进行扩展。一般比较流行的eslint规则有三种:Google标准、airbnb标准、standard标准。
Google标准安装
npminstalleslinteslint-config-google-g
airbnb标准安装
airbnb标准,它依赖eslint,eslint-plugin-import,eslint-plugin-react,andeslint-plugin-jsx-a11y等插件,并且对各个插件的版本有所要求。
你可以执行以下命令查看所依赖的各个版本:
npminfo"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的版本要求后,代入以下命令执行安装即可使用:
npminstalleslint-config-airbnbeslint@^#.#.#eslint-plugin-jsx-a11y@^#.#.#eslint-plugin-import@^#.#.#eslint-plugin-react@^#.#.#-g
standard标准安装
Standard标准,它是一些前端工程师自定的标准。
npminstalleslint-config-standardeslint-plugin-standardeslint-plugin-promise-g
rules
eslint启用的规则列表。你可以重写eslint的规则,定义级别:
module.exports={ rules:{ 'no-console':1 } };
左边是规则,右边是级别。1为警告,2为报错,0为关闭。规则详情请参考这里
React使用eslint
1.安装eslint-plugin-react
npmieslint-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" ], }
参考文章:
怎样在vue项目下添加ESLint
eslint中文网
eslint的三大通用规则
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。