前言:
本章内容, 我们在项目中加入 eslint 配置, 来审查校验代码, 这样能够避免一些比较低级的错误. 并且在团队协作的时候, 保持同一种风格和规范能提高代码的可读性, 进而提高我们的工作效率.
安装:
eslint-config-standard 是一种较为成熟通用的代码审查规则, 这样就不用我们自己去定义规则了, 使用起来非常方便, 记住还需要安装一些依赖插件:
NPM install --save-dev eslint eslint-config-standard eslint-plugin-standard eslint-plugin-promise eslint-plugin-import eslint-plugin-node
配置:
在项目根目录下创建 .eslintrc 文件:
- {
- "extends": "standard",
- "rules": {
- "no-new": "off"
- }
- }
在 vue 项目中,.vue 文件中的 script 标签内的代码, eslint 是无法识别的, 这时就需要使用插件: eslint-plugin-html
NPM i eslint-plugin-HTML -D
然后在 .eslintrc 中配置该插件:
- {
- "extends": "standard",
- "plugins": [
- "html"
- ],
- "rules": {
- "no-new": "off"
- }
- }
这样就能解析 .vue 文件中的 JS 代码了, 官方也是如此推荐.
使用:
配置完成, 如何使用呢?
在 package.JSON 文件中添加一条 script:
- "scripts": {
- "build": "cross-env NODE_ENV=production webpack --config config/webpack.config.js --progress --inline --colors",
- "lint": "eslint --ext .js --ext .vue src/"
- }
- -ext 代表需要解析的文件格式, 最后接上文件路径, 由于我们的主要代码都在 src 目录下, 这里就配置 src 文件夹.
NPM run lint
可见控制台给出了很多错误:
在这里插入图片描述
在项目前期没有加入 eslint 的情况下, 后期加入必然会审查出许多错误. 出现这么多错误之后, 如果我们逐条手动去解决会非常耗时, 此时可以借助 eslint 自动修复, 方法也很简单.
只需要添加一条命令即可:
- "scripts": {
- "build": "cross-env NODE_ENV=production webpack --config config/webpack.config.js --progress --inline --colors",
- "lint": "eslint --ext .js --ext .vue src/",
- "lint-fix": "eslint --fix --ext .js --ext .jsx --ext .vue src/"
- }
然后执行
NPM run lint-fix
我们希望在开发过程中能够实时进行 eslint 代码审查, 需要安装两个依赖:
NPM i eslint-loader babel-eslint -D
修改 .eslintrc:
- {
- "extends": "standard",
- "plugins": [
- "html"
- ],
- "rules": {
- "no-new": "off"
- },
- "parserOptions":{
- "parser": "babel-eslint"
- }
- }
由于我们的项目使用了 webpack 并且代码都是经过 Babel 编译的, 但是 Babel 处理过的代码有些语法可能对于 eslint 支持性不好, 所以需要指定一个 parser.
下一步, 在 webpack.config.JS 中添加 loader:
- {
- test: /\.(vue.js)$/,
- loader: 'eslint-loader',
- exclude: /node_modules/,
- enforce: 'pre'
- }
enforce: 'pre' 表示预处理, 因为我们只是希望 eslint 来审查我们的代码, 并不是去改变它, 在真正的 loader(比如: vue-loader) 发挥作用前用 eslint 去检查代码.
记得在你的 IDE 中安装并开启 eslint 插件功能, 这样就会有错误提示了.
比如:
在这里插入图片描述
图中的错误是未使用的变量.
editorconfig:
editorconfig 是用来规范我们的 IDE 配置的, 在根目录创建 .editorconfig 文件:
- root = true
- [*]
- charset = utf-8
- indent_style = space
- indent_size = 2
- end_of_line = lf
- insert_final_newline = true
- trim_trailing_whitespace = true
这样就能在各种 IDE 使用相同的配置了.
同样需要在 IDE 中安装 editorconfig 插件
以上就是 eslint 的配置方法了.
本人才疏学浅, 如有不当之处, 欢迎批评指正
传送门:
webpack4 系列教程
来源: http://www.jianshu.com/p/2ec349411d57