国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 網站 > WEB開發 > 正文

在React+Babel+Webpack環境中使用ESLint

2024-04-27 15:19:24
字體:
來源:轉載
供稿:網友

ESLint是js中目前比較流行的插件化的靜態代碼檢測工具。通過使用它可以保證高質量的代碼,盡量減少和提早發現一些錯誤。使用eslint可以在工程中保證一致的代碼風格,特別是當工程變得越來越大、越來越多的人參與進來時,需要加強一些最佳實踐。

本文假設您已經有一個react+babel+webpack的起始工程,可以參考react-webapp-startkit

首先,安裝eslint包

在項目的跟目錄下,運行

npm --save-dev install eslint

因為我們使用了webpack,所以必須要告訴webpack我們在構建時使用eslint,安裝eslint-loader

npm --save-dev install eslint-loader

安裝之后,我們可以再webpack配置中使用eslint加載器了。webpack.config.js

...module: {  loaders: [    {      test: //.jsx?$/,      exclude: /node_modules/,      loader: 'react-hot!babel'    },    {      test: //.js$/,      exclude: /node_modules/,      loader: 'eslint-loader'    }  ]},...

此外,我們既可以在webpack配置文件中指定檢測規則,也可以遵循最佳實踐在一個專門的文件中指定檢測規則。我們就采用后面的方式。

在根目錄下:

touch .eslintrc

.eslintrc

{  "rules": {  }}

稍后我們可以在該文件中指定規則,但首先我們要在Webpack配置文件中引入該文件。

webpack.cofnig.js

...devServer: {  contentBase: './dist',  hot: true,  historyApiFallback: true},eslint: {  configFile: './.eslintrc'},plugins: [...

現在可以啟動app了,在根目錄下

npm run dev // 取決與package.json中的定義

你可能會看到The keyWord ‘import’ is reserved的解析錯誤。這是因為eslint還不知道通過Babel使用的ES6特性(比如import)。

ESLint + Babel

之前,我們已經安裝了babel-loader(在起步工程中)來轉換我們的代碼。現在我們可以將它和eslint-loader一同使用。

webpack.config.js

...module: {  loaders: [    {      test: //.jsx?$/,      exclude: /node_modules/,      loader: 'react-hot!babel'    },    {      test: //.js$/,      exclude: /node_modules/,      loaders: ['babel-loader', 'eslint-loader']    }  ]},...

或者,使用webpack的PReLoaders

webpack.config.js

...module: {  preLoaders: [    {      test: //.js$/,      exclude: /node_modules/,      loader: 'eslint-loader'    },  ],  loaders: [    {      test: //.jsx?$/,      exclude: /node_modules/,      loader: 'react-hot!babel'    }  ]},...

我們可以通過babel-eslint來檢測ES6代碼。

還是先安裝

npm install --save-dev babel-eslint

修改.eslintrc

{  parser: "babel-eslint",  "rules": {  }}

現在應該可以啟動app了,但是沒有任何錯誤顯示,不要高興的太早,這只是因為我們還沒有添加任何檢測規則。

ESLint規則

我們來添加我們的第一條規則。

修改.eslintrc

..."rules": {  "max-len": [1, 70, 2, {ignoreComments: true}]}...

我們添加了一條規則來檢查代碼的單行長度,當單行代碼長度大于70個字符時,檢測會報錯。

啟動app,你可能會看到關于代碼長度的錯誤,因為某些行多于70個字符了。我們可以修改規則來允許更多的字符。

.eslintrc

..."rules": {  "max-len": [1, 120, 2, {ignoreComments: true}]}...

如果還有錯誤,可能你就需要考慮修改代碼了。

React的ESLint規則

現在來添加一些檢測React的代碼規則,使用eslint-plugin-react。

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

安裝之后,我們可以使用react插件來指定我們關于react的第一條代碼規則。比如我們要求組件指定PropTypes

.eslintrc

{  parser: "babel-eslint",  "plugins": [    "react"  ],  "rules": {    "max-len": [1, 120, 2, {ignoreComments: true}],    "prop-types": [2]  }}

當啟動app后,你可能會看到PropTypes定義的錯誤,你可能想要修復這些錯誤。

另外,我們可以使用一些包含推薦規則的預設,但暫時我們先擴展自己的規則。

擴展ESLint規則

我們不想每次都指定這些規則,所幸已經有很多符合最佳實踐的規則。其中之一就是Airbnb Style Guide,此外Airbnb還開源了他們自己的ESlint配置。

已經有一部分依賴包安裝了,但還缺少一些:

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

Now we can add a one-liner to our ESLint configuration to use Airbnbs’ ESLint configuration. When you look back at the packages we installed, you can see that the configuration includes JSX and React rules.

接下來,通過一行代碼的配置來讓我們可以使用Airbnb的ESLint配置(你可以通過查看node_modules里面的包來查看,這個配置包含了jsx和React的規則)

.eslintrc

{  parser: "babel-eslint",  "extends": "airbnb",  "rules": {    "max-len": [1, 120, 2, {ignoreComments: true}],    "prop-types": [2]  }}

我們可以看到可以很簡單的使用別人的配置規則來擴展ESLint規則。我們還可以使用其他的擴展,但目前Airbnb代碼規范和ESlint配置非常的受歡迎并被大多數開發者所接受。

微調

有時候,為了迎合自己的項目需要,需要對某些特殊的規則微調。比如我們不想看到no-unused-vars(為使用過的變量定義)的警告,可以

.eslintrc

{  parser: "babel-eslint",  "extends": "airbnb",  "rules": {    "no-unused-vars": 0,    "max-len": [1, 120, 2, {ignoreComments: true}],    "prop-types": [2]  }}

上面這種是全局的配置,如果是只想在某些文件中禁止檢測,可以如下修改(通過注釋的方式)

src/index

/*eslint-disable no-unused-vars*/import SC from 'soundcloud';/*eslint-enable no-unused-vars*/import React from 'react';import ReactDOM from ‘react-dom';...

pre-commit鉤子

如果項目使用了git,可以通過使用pre-commit鉤子在每次提交前檢測,如果檢測失敗則禁止提交。可以在很大一定程度上保證代碼質量。

這里我們使用了pre-commitgit包來幫助我們實現這一目標。

首先在package.json中添加script命令:

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

其次,安裝pre-commit

npm install pre-commit --save-dev

最后,在package.json中配置pre-commit需要運行的命令:

"pre-commit": [  "eslint"]

完成之后,在每次提交之前,都會運行eslint命令進行檢測,如果檢測到有違反代碼規則的情況,則會返回1,導致git commit失敗。

done.

原文地址:http://www.cnblogs.com/le0zh/p/5619350.html
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
在线亚洲精品自拍| 狠狠干天天干| 国产精品人人| 国产超碰97| 在线色视频观看| 牛牛热在线视频| 欧美艹逼视频| 天天av综合网| 国产黄在线看| 日本三级在线视频| 中文字幕欧美日韩在线不卡| 国产视频资源| eeuss影院www在线观看| 国产在线高潮| 国产三级视频在线看| 亚洲永久免费网站| 天堂在线看视频| av一本在线| 国产精品国产三级国产试看| 欧美卡一卡二| 69久久精品| 成人免费一区二区三区牛牛 | 在线午夜视频| 中文字幕在线观看日本| 香蕉视频网站在线播放| 国产精品久久久高清免费| 国产尤物视频| 开心婷婷激情| 人成在线免费视频| 国产成人精品男人的天堂538| 久久亚洲资源| 男人天堂亚洲| 亚洲人av在线| 中文字幕av高清| 精品无人乱码| 国产午夜在线| 国产精品剧情一区二区三区| 国产在线视精品麻豆| 日本成人网址| 日本不卡1区2区3区| 日本h片在线观看| gogo高清在线播放免费| 夜夜爽夜夜操| 日本片在线看| 成人精品福利| 福利视频在线看| 九九99九九精彩| 九色福利视频| 天堂在线看视频| 国产大学生粉嫩无套流白浆| 国产九九在线| 国产精品视频一区二区图片| 国产特黄在线| 在线视频观看国产| 午夜小视频在线| 国产在线日本| 国产激情视频网址| av在线你懂的| 国产免费av网站| 国产小视频免费在线观看| 精品欧美色视频网站在线观看| 在线天堂视频| 黄色毛片在线看| 国产黄色在线看| 免费影视观看网站入口| 青青草观看免费视频在线| 综合蜜桃精品| 亚洲国产日韩成人综合天堂| 高清欧美精品xxxxx在线看| 国产精品久久久久白浆| 超碰免费在线| 亚洲最新永久观看在线| 天堂资源中文在线| 亚洲夜夜综合| 国产情侣高潮对白| av中文资源在线| 国产porn在线| 国产农村一级特黄α**毛片| 国产二级c片l毛片| 国产麻豆一区二区三区精品| 国产偷窥老熟盗摄视频| 牛牛精品视频在线| 在线观看中文字幕的网站| 国产小视频在线观看| 成 人免费视频播放| 国产福利免费观看| 中文字幕一区免费| 免费高清视频日韩| 三级小说一区| www操操操| 精品国产福利一区二区在线| 国产毛片毛片| 丁香花在线电影| 免费高清av| 青青草视频免费在线观看| 国产xxx在线| 国产精品国产国产aⅴ| 国产精品亚洲色图| 国产另类图片| 91超碰在线免费| 黄色电影网站在线观看| 黄色激情网址| 五月婷婷视频在线观看| 国产永久免费| 国产丝袜在线观看视频| 国产精品视频一区二区免费不卡 | 最新中文字幕在线视频| www.成人.com| 亚洲精品乱码电影在线观看| 亚洲欧美日韩成人网| 中文字幕第一页在线| 国产黄大片在线观看画质优化| 最新av免费看| 亚洲高清在线免费| 国产精品国产三级国产试看| 国产精品免费视频一区一| 国产精品爱久久久久久久小说| 中文字幕第一页在线| 国产精品日日爱| 中文在线视频观看| 精品国产丝袜高跟鞋| 日本高清中文字幕在线| 黄色一级片视频| 中文字幕日本在线| 亚洲日本久久久午夜精品| 日本一二三区视频免费高清| 超碰人人在线| 精品久久av| 福利视频网址导航| 中文资源在线官网| 国产久草在线| www.香蕉视频在线观看| 中文字幕一区二区三区免费视频| 91www在线观看| 免费中文字幕| 国产精品欧美韩国日本久久| av亚洲男人天堂| 国产精品扒开做爽爽爽的视频| 日韩欧美中文字幕不卡| 国产网站免费看| 免费一区二区三区视频狠狠| 国产精品ⅴa有声小说| 麻豆福利在线观看| 精品亚洲成a人片在线观看| 午夜av电影| 国产免费av网站| gogo在线高清视频| 精品视频麻豆入口| 国产精品久久久精品a级小说| 黄色片av在线| www.亚洲视频| 992tv在线观看在线播放| 综合激情亚洲| 国产美女在线免费观看| av在线不卡播放| 在线播放国产区| 精品一区二区三区高清免费不卡| 国产午夜视频| 国产香蕉免费精品视频| 国产亚av手机在线观看 | eeuss影院在线观看| 夜夜操天天干| 99爱在线观看| 伊人网在线观看| 国产日本韩国在线播放| 国产福利在线视频| 在线国产一区二区三区| 天天草天天操| 国产毛片在线| 国产高清一区二区三区视频| 69国产精品| wwwww在线观看免费视频| 成在线人视频免费视频| 日本中文字幕视频在线| 国产区高清在线| 在线观看精品一区二区三区| 天天草天天爽| 国产尤物视频| 91九色在线看| 99爱在线观看| 九九热精品在线视频| 中文字幕成人乱码在线电影| 2020中文字幕在线播放| 久久精品国产亚洲777| 天堂资源中文在线| 69国产精品| 免费精品国产自产拍观看| 最近中文字幕大全中文字幕免费| 91最新在线| 福利视频网址导航| 69堂视频在线观看国产| 久久久久久国产视频| 国产精品777一区二区| 午夜在线不卡| 中文字幕日本在线观看| av色在线观看| 精品一区二区三区高清免费不卡| 免费电影网站在线视频观看福利| 国产人成在线视频| 国产中文在线观看|