淺談WEB前端規範化標準之ESlint

規範化標準css

軟件開發須要多人開發,不一樣的開發者具備不一樣的編碼習慣和喜愛,不一樣的喜愛增長項目的維護成本,因此須要明確統一的標準,決定前端

了項目的可維護性,人爲的約定不可靠,因此須要專門的工具進行約束,而且能夠配合自動化工具進行檢查,這種專門的工具稱爲lint,vue

前端接觸最多的是ESLint,下面咱們看下如何使用這些工具落實前端規範化操做。node

ESLint介紹react

目前最主流的JavaScript Lint工具 監測JS代碼質量 ,統一開發者的編碼風格,同時ESLint能夠幫助開發者提高編碼能力做用的一款工jquery

具,是npm的一個模塊。webpack

ESLint安裝git

yarn init --yweb

yarn add eslint --save-devshell

yarn eslint --init (各類提示問題,我選擇的檢查語法,代碼不合理,風格不統一等全部的規範,根據本身狀況填寫完成後生成.eslintrc.js

配置文件)//項目初始化

以下圖所示能夠寫一些問題代碼

運行yarn eslint xxx(上文定義的js文件),會有不少錯誤提示,運行--fix能夠自動幫咱們解決大部分問題(樣式問題)

yarn  eslint xx --fix

運行以後的結果提示有一個未使用的變量,還有一個未使用的方法,手動去掉以後,再次運行eslint --fix 結果無異常

ESlint 配置文件.eslintrc.js解析

正常狀況下,咱們不須要手動配置,可是若是咱們開啓或者關閉某些校驗規則的時候,就須要用到這個配置文件通常狀況下,JavaScri-

pt在不一樣的運行環境中是有不一樣的api能夠被調用,不少都是以全局成員的形式提供出來,一旦開啓表明全部的定義的成員都會被全局使

用。例如window和document對象是運行在瀏覽器環境中,而在node.js環境中不存在這些對象,以下圖所示env的做用就是標記不一樣的運

行環境,ESlint會根據成員信息判斷環境是不是可用的。

如上圖所示的env中若是把Browser設置爲false,發現仍是可使用window和document仍是可使用這是由於在node_modules文件夾 

下文件夾下的eslint-config-standard(yarn eslint --init初始化中選擇使用standard規範)中的eslintrc.json中globals中設置了document

等爲全局只讀成員,因此.eslintrc.js中不管設置true和false都會致使失效。

extends:繼承共享配置

parserOptions:設置js的版本,代碼低於該版本會沒法執行

rules:[]//配置ESLint中每一個規則的開啓或者關閉,屬性爲內置屬性,屬性value值爲off warn error

globals:定義另外的全局變量,好比jquery,這樣就可使用jquery,也不會報錯

ESlint配置註釋

Eslint只是一個規則,總有一兩個地方不適用的時候,這時候就能夠經過註釋的方式,讓eslint跳過這行代碼不解析,下面舉一個小小的例子

具體能夠去看eslint文檔看更多的註釋方法。

ESlint 結合webpack

Webpack打包以前是把遇到的模塊交給對應的loader進行處理,eslint會經過loader的形式去集成到webpack中,這樣經過打包以前校驗代

碼,具體配置以下:

對於react解析jsx語法則須要一些額外的配置

yarn add eslint-plugin-react

ESlint檢查TypeScript

.eslintrc中須要配置針對ts的語法解析器,緣由ts的不少語法是不一樣於js的

stylelint的使用

eslint是監測JS代碼質量的工具,stylelint是檢測css及less,sass代碼質量的工具。

yarn add stylelint --dev

yarn add stylelint-config-standard //安裝共享配置模塊

yarn add stylelint-config-sass-guidelines --dev 針對sass模塊的檢測

與eslint不一樣的是.stylelintrc.js 不是經過初始化建立的 而是須要手動建立,stylelint配置以下:

prettier簡介

prettier是目前最流行的一款修改代碼樣式格式統一的工具,針對多種css,js,vue等文件的格式

yarn add prettier --dev

yarn prettier . --write 便可覆蓋原代碼

Git hooks工做機制(簡單介紹)

不少時候多人合做開發的項目中,或許有人忘記使用lint工具檢測代碼,就提交到git倉庫,可能會引起後續問題,有一種結合git倉庫的lint工

具,在提交代碼前進行代碼檢測。

首先新建個文件夾,git init後點擊.git文件夾裏面的hooks文件夾,複製pre-commit.sample文件,更名爲pre-commit,能夠在裏面測試下寫下

shell腳本語句輸出內容

 

touch demo.txt //新建測試文件

vim demo.txt //填充demo文件

git add .

git commit -m "xxxxx"

執行完上步操做以後,咱們能夠看到before code打印到控制檯當中,說明已經工做了,咱們就能夠想辦法在提交代碼以前作lint操做。

ESLint 結合Git Hooks的使用

不少狀況下,不少前端開發者不太擅長shell腳本開發一些功能,而有些功能必需要使用的,因此有人開發了一個npm的工做模塊Husky

能夠實現Git Hooks的使用需求,下面來測試下Husky與一些相關配置的組合使用(須要把上文中測試建立的pre-commit文件刪除掉)

yarn add husky --dev 首先安裝husky模塊

package.json中定義不一樣的任務

配置好後,再次執行commit操做,會先進行檢查,若是 有問題會阻止提交代碼操做,若是想檢查出問題以後添加格式化的功能,須要添加l

int-staged模塊配合husky使用。

yarn add lint-staged --dev

package.json配置完成後再次執行commit操做,不但會對代碼進行檢查,還會執行代碼初始化的操做

/**************************************************************************************************************************************************/

2021,砥礪前行,加油!

相關文章
相關標籤/搜索