本文首发于 Array_Huang的技术博客——实用至上
,非经做者赞成,请勿转载。
原文地址: http://www.javashuo.com/article/p-qiehqwok-cx.html
若是您对本系列文章感兴趣,欢迎关注订阅这里:https://segmentfault.com/blog/array_huang
你所在的团队里有没有“老鼠屎”?就是专门写各类看起来溜得飞起但实际上晦涩难懂的代码?又或是缩进换行乱成一团?javascript
你写代码是否是特粗心?常常落下些语法错误,debug起来想死?css
若是你有以上问题,ESLint帮到你![手动滑稽]前端
从上面两个应用场景,你大概已经猜到ESLint是用来干什么的了:java
语法错误好说,编码规范和代码风格如何审查呢?ESLint定义好了一大堆规则做为可配置项;同时,一些大公司会开源出来他们使用的配置(好比说airbnb
),你能够在某套现成配置的基础上进行修改,修改为适合大家团队使用的编码规范和代码风格。node
本文着重介绍如何在webpack里整合进ESLint,而并不介绍ESLint自己,所以,对于没有使用过ESLint的小伙伴,请先去本身入门一下啦。webpack
此次咱们须要使用到eslint-loader
,先放出配置的代码:git
/* 这是webpack配置文件的内容,省略无关部分 */ { module: { preLoaders: [{ test: /\.js$/, // 只针对js文件 loader: 'eslint', // 指定启用eslint-loader include: dirVars.srcRootDir, // 指定审查范围仅为本身团队写的业务代码 exclude: [/bootstrap/], // 剔除掉不须要利用eslint审查的文件 }], }, eslint: { configFile: path.resolve(dirVars.staticRootDir, './.eslintrc'), // 指定eslint的配置文件在哪里 failOnWarning: true, // eslint报warning了就终止webpack编译 failOnError: true, // eslint报error了就终止webpack编译 cache: true, // 开启eslint的cache,cache存在node_modules/.cache目录里 } }
接下来解释一下这份eslint-loader的配置。github
preLoaders
而不是loaders
里?理论上来讲放loaders里也无伤大雅,但放preLoaders里有如下好处:web
若是你使用了babel,或相似的loader,那么,经过webpack编译先后的代码相差就很大了,这会形成两个问题(以babel为例):bootstrap
从eslint-loader官方文档能够看出,eslint-loader的配置仍是比较多也比较复杂的,所以采用了独立的一个配置项eslint
(跟module
同级哈)。
只要你能在本身团队里成功推行ESLint,那么最起码,你能够放心不用再看到那些奇奇怪怪的代码了,由于,它们都编译不经过呐哈哈哈哈哈……
经过webpack整合ESLint,咱们能够保证编译生成的代码都是没有语法错误且符合编码规范的;但在开发过程当中,等到编译的时候才察觉到问题可能也是太慢了点儿。
所以我建议能够把ESLint整合进编辑器或IDE里,像我本人在用Sublime Text 3
的,就可使用一个名为SublimeLinter
的插件,一写了有问题的代码,就立刻会标识出来,以下图所示:
诸位看本系列文章,搭配我在Github上的脚手架项目食用更佳哦(笑):Array-Huang/webpack-seed(https://github.com/Array-Huang/webpack-seed
)。
https://segmentfault.com/a/1190000006843916
https://segmentfault.com/a/1190000006863968
https://segmentfault.com/a/1190000006871991
https://segmentfault.com/a/1190000006887523
https://segmentfault.com/a/1190000006897458
https://segmentfault.com/a/1190000006907701
https://segmentfault.com/a/1190000006952432
https://segmentfault.com/a/1190000006992218
https://segmentfault.com/a/1190000007030775
https://segmentfault.com/a/1190000007043716
https://segmentfault.com/a/1190000007104372
https://segmentfault.com/a/1190000007126268
https://segmentfault.com/a/1190000007159115
本文首发于 Array_Huang的技术博客——实用至上
,非经做者赞成,请勿转载。
原文地址: http://www.javashuo.com/article/p-qiehqwok-cx.html
若是您对本系列文章感兴趣,欢迎关注订阅这里:https://segmentfault.com/blog/array_huang