亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

在React項目中使用Eslint代碼檢查工具及常見問題

2019-11-19 12:44:47
字體:
來源:轉載
供稿:網友

背景

最近使用 create-react-app 創建了一個項目。但是眾所周知的是,這個腳手架創建的項目并沒有默認加入 Eslint 等 lint 插件來規范代碼。

考慮到項目中很多項目沒有使用類似的代碼檢查工具,為了規范開發。這次有必要記錄一下流程。

使用 Eslint 流程

1. 安裝 Eslint

首先,先安裝 Eslint 到項目本地(全局安裝亦可)。

npm --save-dev install eslint

安裝完成之后,我們先創建基礎的 .eslintrc.yml (建議使用 .yml 格式,json/js 格式也可以):

./node_modules/.bin/eslint --init ## 全局安裝,可用 `eslint --init`

輸入上述命令之后,會出現詢問界面:

? How would you like to configure ESLint? (Use arrow keys)
  Use a popular style guide
❯ Answer questions about your style
  Inspect your JavaScript file(s)

選擇“Answer questions about your style”,后面有一些問題,根據實際進行選擇。

上述操作完成之后,會幫我們創建一個基礎的 .eslintrc.yml 文件。我們也可以使用 touch .eslintrc.yml 自行創建。

2. 安裝 babel-eslint

由于項目中需要使用到 ES2015 的語言規范,因此需要安裝 babel-eslint :

npm install --save-dev babel-eslint

安裝完成之后,我們需要在 .eslintrc.yml 中修改配置

parser: "babel-eslint"

【注意】:若沒有該項,曾手動增加

3. 安裝 eslint-plugin-react

項目中需要使用 React 框架,需要識別出 React 特定的語法規則和要求,需要安裝 eslint-plugin-react :

npm install --save-dev eslint-plugin-react

安裝完成之后,我們需要引入該 Eslint 組件。修改 .eslintrc.yml 配置:

plugins: - react

特別提醒:YML語法規則中表示數組格式:- 開頭,后面為數組元素,如此處的 react。屬性值中若不含特殊字符,可以不加上雙引號。

4. 安裝 Airbnb

到現在為止,我們只使用了一些默認創建的校驗規則,為了避免我們自己按照 Eslint 的規則一個一個來個性化定制規則,很是麻煩。這里我們使用 GitHub - airbnb/javascript: JavaScript Style Guide 規范來定義規則。這就需要安裝如下插件:

npm i --save-dev eslint-config-airbnb eslint-plugin-import eslint-plugin-jsx-a11y

接著,我們修改 .eslintrc.yml 配置,將擴展插件變更為 Airbnb :

extends: "airbnb"

到此,靜態代碼檢查工具安裝結束。

檢查 Git 提交的代碼

除了靜態代碼檢查,我們還設置一道關卡來保證提交的代碼符合規范。這就需要使用到我們主角 pre-commit 鉤子。
這里假設項目中使用 Git 進行代碼的提交操作。

首先在 package.json 中增加如下腳本指令:

{ "scripts": {  "lint": "eslint --ext .js --ext .jsx src" }}

這里將檢查目錄 src 下面所有以 .js或.jsx 格式結尾的代碼文件。

然后,安裝 pre-commit ,以便檢查提交操作:

先執行安裝 npm install --save-dev pre-commit,然后在 package.json 中增加下面配置。

{ "pre-commit": [  "lint" ]}

這里的 lint 對應第 1 步中增加的腳本命令名。

完成之后,在每次提交代碼之前,pre-commit 都會攔截 Git 的 commit 操作,然后運行 lint 命令進行代碼檢測,若檢測到有違反校驗規則的情況,則會返回錯誤,從而導致 git commit 失敗。

遇到的問題

1. 代碼檢查,.js 文件不支持 jsx。

error  JSX not allowed in files with extension '.js'  react/jsx-filename-extension

此時需要增加配置以便支持在 .js 文件中支持使用 JSX 語法。

rules: react/jsx-filename-extension:   - warn  - extensions:   - ".js" # .js 文件適用   - ".jsx"

2. 代碼中 process.env 報錯

此處需要支持 node 語法。增加配置:

env: node: true

3. 代碼檢查了 serviceWorker.js 等第三方組件文件

有時項目中存在一些已經編譯好的的JS文件,無需進行代碼檢查,此時需要增加 .eslintignore 文件來告訴 Eslint 忽略一下文件的檢查,如:

# node_modulesnode_modules/# buildbuild/# distdist/# serviceWorkersrc/serviceWorker.js

總結

一句話總結,我們需要Eslint插件實現代碼檢查,需要 Airbnb 來簡化校驗規則的編寫,需要 pre-commit 來攔截提交操作,最大限度保證倉庫中的代碼是符合規范要求的。

其他項目(如Vue項目)需要使用到 Eslint 和 pre-commit,如上配置即可,不同支持在于是否配置支持 react。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成人免费网站| 欧美一区二区三区免费观看| 97国产真实伦对白精彩视频8| 久久久久99精品久久久久| 亚洲福利视频免费观看| 综合久久五月天| 最好看的2019年中文视频| 日韩国产在线看| 日韩精品亚洲精品| 这里只有精品在线观看| 亚洲国产精品成人va在线观看| 日韩在线欧美在线| 精品国产区一区二区三区在线观看| 国产精品久久久久久久久久三级| 国产成人福利视频| 国产最新精品视频| 久久在线观看视频| 久久精品国产亚洲7777| 国产亚洲美女精品久久久| 亚洲视屏在线播放| 尤物精品国产第一福利三区| 欧美成人午夜激情视频| 国产精品久久久久久久av电影| 国产999精品久久久| 大荫蒂欧美视频另类xxxx| 欧美xxxx做受欧美| 亚洲品质视频自拍网| 亚洲国产日韩欧美在线99| 中文字幕久精品免费视频| 国产成人精品一区二区| 日韩小视频网址| 欧美香蕉大胸在线视频观看| 4k岛国日韩精品**专区| 欧美日韩在线视频一区二区| 日韩精品视频在线观看网址| 日韩福利在线播放| 亚洲国产91色在线| 91经典在线视频| 亚洲人成电影在线播放| 一本色道久久88综合亚洲精品ⅰ| 国产精品稀缺呦系列在线| 久久影院资源网| 欧美日韩一区二区在线播放| 亚洲欧美日韩在线高清直播| 亚洲一区二区久久久| 91亚洲国产精品| 91系列在线播放| 中文字幕日韩精品在线观看| 国产91色在线|免| 欧美性xxxxx| 亚洲理论电影网| 成人亲热视频网站| 久久亚洲精品中文字幕冲田杏梨| 国产v综合v亚洲欧美久久| 欧美大成色www永久网站婷| 精品福利免费观看| 欧美极品少妇与黑人| 久久69精品久久久久久久电影好| 国产精品久久久久久av福利软件| 38少妇精品导航| 国产精品福利久久久| 久久久99久久精品女同性| 欧美日韩美女视频| 亚洲国产欧美一区二区三区久久| 亚州av一区二区| www.美女亚洲精品| 亚洲精品一区中文| 91精品视频免费观看| 亚洲男人天堂手机在线| 日韩av免费一区| 欧美一级淫片丝袜脚交| 亚洲网址你懂得| 成人伊人精品色xxxx视频| 欧美在线中文字幕| 视频一区视频二区国产精品| 色偷偷88888欧美精品久久久| 成人激情视频在线播放| 丰满岳妇乱一区二区三区| 欧美综合在线第二页| 国产精品久久久久久久9999| 国产精品日韩欧美| 国产亚洲视频在线观看| 国产精品视频网站| 日韩av电影手机在线| 欧美一级淫片aaaaaaa视频| 日韩免费观看av| 国产成+人+综合+亚洲欧美丁香花| 国产精品日韩在线观看| 欧美精品一二区| 91香蕉嫩草神马影院在线观看| 午夜精品99久久免费| 国产精品一区电影| 色狠狠久久aa北条麻妃| 亚洲欧美另类人妖| 成人中文字幕+乱码+中文字幕| 国产精品电影观看| 国产精品中文字幕久久久| 日本精品久久久| 91精品国产乱码久久久久久久久| 5278欧美一区二区三区| 国产精品第二页| 97色在线观看| 亚洲国产欧美一区二区三区同亚洲| 92国产精品视频| 国产日韩欧美综合| 国产精品男人爽免费视频1| 国产精品高潮在线| 最近的2019中文字幕免费一页| 午夜精品久久久久久久久久久久| 日韩欧美高清视频| 国产成人极品视频| 国产综合在线视频| 日产精品99久久久久久| 成人精品一区二区三区电影黑人| 国内精品400部情侣激情| 国产suv精品一区二区| 欧美成年人视频网站欧美| 成人在线免费观看视视频| 日韩电影大全免费观看2023年上| 在线亚洲国产精品网| 社区色欧美激情 | 日韩精品福利在线| 日韩中文字幕网址| 欧美最猛性xxxxx免费| 久久国产精品久久久久久| 久久久久久久久国产| 久久综合国产精品台湾中文娱乐网| 国产这里只有精品| 亚洲成年人在线播放| 9.1国产丝袜在线观看| 日本中文字幕成人| 日韩av电影院| 精品性高朝久久久久久久| 久久精品国产亚洲一区二区| 欧美肥老妇视频| www.色综合| 欧美日韩亚洲高清| 亚洲a中文字幕| 日本成人免费在线| 日韩视频精品在线| 欧美日韩亚洲一区二区三区| 色综合久久中文字幕综合网小说| 国产精品丝袜白浆摸在线| 欧美在线激情视频| 亚洲色图第三页| 精品中文字幕乱| 超碰97人人做人人爱少妇| 91国语精品自产拍在线观看性色| 在线日韩日本国产亚洲| 97碰碰碰免费色视频| 97久久精品人人澡人人爽缅北| 97av在线视频免费播放| 久久久av一区| 亚洲第一av网站| 欧美激情欧美激情在线五月| 亚洲香蕉在线观看| 热久久免费视频精品| 成人免费视频在线观看超级碰| 成人性教育视频在线观看| 91精品久久久久久久久| 日本欧美在线视频| 欧美孕妇毛茸茸xxxx| 成人免费在线网址| 亚洲人成欧美中文字幕|