本文首發於 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