在webpack中使用eslint配置(詳細教程)-js教程-PHP中文網

本篇文章主要介紹了webpack引入eslint配置詳解,現在分享給大家,也給大家做個參考。
webpack中eslint使用

首先,要使webpack支持eslint,就要要安裝 eslint-loader ,命令如下:

1

npm install --save-dev eslint-loader

在 webpack.config.js 中添加如下代碼:

1

2

3

4

5

6

7

8

9

{

??test: /\.js$/,

??loader: 'eslint-loader',

??enforce: "pre",

??include: [path.resolve(__dirname, 'src')], // 指定檢查的目錄

??options: { // 這里的配置項參數將會被傳遞到 eslint 的 CLIEngine?

????formatter: require('eslint-friendly-formatter') // 指定錯誤報告的格式規范

??}

}

注:formatter默認是stylish,如果想用第三方的可以安裝該插件,如上方的示例中的 eslint-friendly-formatter 。

其次,要想webpack具有 eslint 的能力,就要安裝eslint,命令如下:

1

npm install --save-dev eslint

最后,項目想要使用那些eslin規則,可以創建一個配置項文件 '.eslintrc.js',代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

module.exports = {

??root: true,??

??parserOptions: {

????sourceType: 'module'

??},

??env: {

????browser: true,

??},

??rules: {

????"indent": ["error", 2],

????"quotes": ["error", "double"],

????"semi": ["error", "always"],

????"no-console": "error",

????"arrow-parens": 0

??}

}

這樣,一個簡單的webpack引入eslint已經完成了。

這里講一下 eslintrc.js 的配置使用,詳細細節請參考http://eslint.cn/docs/user-guide

eslint 配置項

root 限定配置文件的使用范圍

parser 指定eslint的解析器

parserOptions 設置解析器選項

extends 指定eslint規范

plugins 引用第三方的插件

env 指定代碼運行的宿主環境

rules 啟用額外的規則或覆蓋默認的規則

globals 聲明在代碼中的自定義全局變量

在我們使用eslint時,配置文件中的 rules 配置項是否是不可或缺的?

答案是肯定的。不過我們也可以不用自定義reules,我們可以使用第三方的,這里我們就要使用extends配置項。

extends

我們可以使用eslint官方推薦的,也可以使用一些大公司提供的的,如:aribnb, google, standard。

在開發中我們一般使用第三方的。

官方推薦

只需在 .eslintrc.js 中添加如下代碼:

1

2

extends: 'eslint:recommended',

extends: 'eslint:all',

了解詳情可以參考一下官方規則表

第三方分享

使用第三方分享的,我們一般需要安裝相關的插件代碼如下:

1

2

npm install --save-dev eslint-config-airbnb // bnb

npm install --save-dev eslint-config-standard // standard

在 .eslintrc.js 中添加如下代碼:

1

2

3

extends: 'eslint:google',

// or

extends: 'eslint:standard',

使用這些第三方的擴展,有時我們需要更新一些插件,比如standard:eslint-plugin-import

不要慌,我們只要按照錯誤提示一步一步的安裝這些插件即可。

雖然,這些第三方的擴展很不錯,但是有時我們需要定義一些比較個性化的規則,我們就需要添加 rules 配置項。

配置規則

在.eslintrc.js 文件中添加 rules, 代碼如下:

1

2

3

4

5

6

{

??"rules": {

????"semi": ["error", "always"],

????"quotes": ["error", "double"]

??}

}

"semi" 和 "quotes" 是 ESLint 中 規則 的名稱。第一個值是錯誤級別,可以使下面的值之一:

"off" or 0 - 關閉規則

"warn" or 1 - 將規則視為一個警告(不會影響退出碼)

"error" or 2 - 將規則視為一個錯誤 (退出碼為1)

這些規則一般分為兩類:

添加默認或第三庫中沒有的

覆蓋默認或第三庫的

我們的項目中可能會有一些其他的文件也需要進行格式規范,如:html, vue, react等,對于這些文件的處理,我們需要引入第三方插件。

plugins(html)

安裝 eslint-plugin-html ,命令如下:

1

npm install --save-dev eslint-plugin-html

這個插件將會提醒模塊腳本之間模擬瀏覽器共享全局變量的行為,因為這不適用于模塊腳本。

這個插件也可以擴展文件,如:.vue,.jsx

.eslintrc.js中,添加如下配置項:

1

2

3

4

settings: {

??'html/html-extensions': ['.html', '.vue'],

??'html/indent': '+2',

},

而對于這種用 eslint-pulgin-html 擴展的的文件我們可以使用 eslint --ext .html,.vue src 進行檢測,如果想要在開發中邊寫邊檢測,我們可以使用相應文件的loader進行處理。然后執行 npm run dev 就可以實現的功能。邊寫邊檢測的功能。

在開發中有時根據需要,我們可能在同一個項目不同的目錄使用不同的 .eslintrc.js 文件,這時我們就需要使用配置項 root 。

限定使用范圍 (root: true)

如果我們想要在不同的目錄中使用不同的 .eslintrc, 我們就需要在該目錄中添加如下的配置項:

1

2

3

{

??"root": true

}

如果我們不設置的話,它將會繼續查找,知道更目錄,如果更目錄有配置文件它將會使用根目錄的,這樣會導致當前配置目錄配置無法起作用的問題。

在開發中針對不同的情況我們要使用不同的解析器,而我們常用的就是 babel-eslint 。

parser(指定解析器)

babel-eslint 解析器是一種使用頻率很高的解析器,因為現在很多公司的很多項目目前都使用了es6,為了兼容性考慮基本都使用babel插件對代碼進行編譯。而用babel編譯后的代碼使用 babel-eslint 這款解析器可以避免不必要的麻煩。

babel-eslint 安裝命令:

1

npm install --save-dev babel-eslint

在 .eslintrc.js 配置文件中添加如下配置項代碼:

1

parser: 'babel-eslint',

如果你使用的默認解析器的話,且在代碼中使用了瀏覽器有兼容性的問題的js新特性,使用webpack編譯就會出現問題,這時我們一般裝最新的eslint或者安裝是使用 babel-eslint 來解決問題。

env(環境)

在 .eslintrc.js 中添加如下代碼:

1

2

3

4

"env": {

??"browser": true, //

??"node": true //

}

指定了環境,你就可以放心的使用它們的全局變量和屬性。

global

指定全局變量。

在 .eslintrc.js 中添加如下代碼:

1

2

3

4

"globals": {

??"var1": true,

??"var2": false?

}

上面是我整理給大家的,希望今后會對大家有幫助。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/248889.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248889.shtml
英文地址,請注明出處:http://en.pswp.cn/news/248889.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

創建一個屬于自己的博客

1、安裝 node.js wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz tar -xf node-v10.15.3-linux-x64.tar.xz -C /home/ 解壓到/home、目錄下 mv node-v10.15.3-linux-x64/ node vim /etc/profile #配置環境變量 export PATH/home/node/bin:$PATH export…

Redis是什么?

Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets. redis是開源,BSD許可,高級的key-value存儲系統. 可以用來存儲字符串,哈希結構…

Vue中定義全局變量與常量的各種方式詳解_vue.js_腳本之家

前言 本文主要跟大家介紹了關于Vue定義全局變量與常量的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹: 我想要定義一個變量, 在項目的任何地方都可以訪問到, 不需要每一次使用的時候, 都引入. 嘗試1:…

oracle 數據庫 鎖

首先你要知道表鎖住了是不是正常鎖?因為任何DML語句都會對表加鎖。 你要先查一下是那個會話那個sql鎖住了表,有可能這是正常業務需求,不建議隨便KILL session,如果這個鎖表是正常業務你把session kill掉了會影響業務的。建議先查原…

推薦21個頂級的Vue UI庫! – TalkingData‘s Blog

推薦21個頂級的Vue UI庫! 最近,隨著“星球大戰”(指 GitHub 的 Star 數量大比拼)的爆發,Vue.js 在 GitHub 上的 Star 數超過了 React。雖然 NPM 的下載量仍然落后于 React,但 Vue.js 的受歡迎程度似乎在持續…

后綴數組水題兩道

BZOJ1031:倍長,建sa,跑一邊把sa值小于等于長度的后綴第n個字母輸出BZOJ4278:直接把串合并起來建一個sa就可以了,然后直接分組貪心 轉載于:https://www.cnblogs.com/dream-maker-yk/p/10068915.html

js獲取頁面的各種高度與寬度

document.body.scrollTop等屬性可以獲取頁面滾動距離等&#xff0c;但是此類屬性在xhtml標準網頁或者更簡單的說是帶<!DOCTYPE ..>標簽的頁面里得到的結果是0&#xff0c; 所以一般為了兼容性都這樣寫 document.documentElement.scrollTop || document.body.scrollTop;以…

MAC終端下常用Git命令 - 某個人 - 博客園

送給新手的簡單命令操作、遠程Git和local的同步實現流程&#xff1a; 1、把git上的代碼clone到本地 $ git clone http:xxxx(地址&#xff0c;可以http也可以ssh) 2、clone到本地以后、使用branch -a 查看遠程所有分支 $ git branch -a 3、如若你有分支&#xff1a;master…

2019河北省大學生程序設計競賽(重現賽)B 題 -Icebound and Sequence ( 等比數列求和的快速冪取模)...

題目鏈接&#xff1a;https://ac.nowcoder.com/acm/contest/903/B 題意&#xff1a; 給你 q,n,p,求 q1q2...qn 的和 模 p。 思路&#xff1a;一開始不會做&#xff0c;后面查了下發現有個等比數列求和的快速冪公式&#xff0c;附上鏈接https://www.cnblogs.com/yuiffy/p/380917…

centos 升級curl版本

1、安裝repo rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/rhel6/x86_64/city-fan.org-release-2-1.rhel6.noarch.rpm 2、查看該 repo 包含的 curl 版本 yum.repos.d]# yum --showduplicates list curl --disablerepo"*" --enablerepo"city*"L…

nodejs服務后臺持續運行

forever.jpeg 我用本地mac連接阿里云服務器&#xff0c;啟動nodejs服務&#xff0c;客戶端掉線&#xff0c;服務也會終止。如何在客戶端掉線的情況下&#xff0c;node服務正常運行&#xff1f; forever介紹 forever是一個nodejs守護進程&#xff0c;完全由命令行操控。forev…

Java工具類DateFormatUtils詳解

日期和時間格式化實用程序和常量public static String format(Calendar calendar, String pattern) 說明&#xff1a;將日歷格式化為特定的模式&#xff1b;參數&#xff1a;calendar-格式化的日歷對象&#xff0c;非null&#xff1b;pattern-用于格式化日歷的模式,非null&…

Node.js+Koa開發微信公眾號個人筆記(一)準備工作 - ZhangCui - 博客園

本人也是在學習過程中&#xff0c;所以文章只作為學習筆記&#xff0c;如果能幫到你&#xff0c;那就更好啦~當然也難免會有錯誤&#xff0c;請不吝指出~ 一、準備工作 1、本人學習教程&#xff1a;慕課網Scott老師的《Node.js七天搞定微信公眾號》 &#xff0c;但是有點小貴…

bzoj4919 大根堆

考慮二分求序列LIS的過程。 g[i]表示長度為i的LIS最小以多少結尾。 對于每個數&#xff0c;二分尋找插入的位置來更新g數組。 放到樹上也是一樣&#xff0c;額外加上一個合并兒子的過程。 發現兒子與兒子直接是互不影響的&#xff0c;可以直接合并。 用啟發式合并set來維護這個…

Oracle rowid

SYS prod>select rowid from scott.emp;ROWID ------------------ AAASPXAAEAAAACVAAA AAASPXAAEAAAACVAAB AAASPXAAEAAAACVAAC AAASPXAAEAAAACVAAD AAASPXAAEAAAACVAAE ROWID的格式如下&#xff1a; 數據對象編號 文件編號 塊編號 行編號 AAASPX AAE AAAACV AAA 我們可以看…

vue項目配置eslint(附visio studio code配置)

eslint基礎環境搭建 全局安裝eslint&#xff1a;npm install eslint -g 項目eslint初始化&#xff1a;eslint --init&#xff0c;按團隊或自己的編程風格回答三道題。 ? How would you like to configure ESLint? Use a popular style guide ? Which style guide do you w…

從數據庫中取出數據表,導入并生成excel

RequestMapping("/numericalStatement1")public void createExcel(HttpServletResponse resp) throws Exception{try {String path "G:/test.xlsx";// 創建新的Excel 工作簿XSSFWorkbook workbook new XSSFWorkbook();// 在Excel工作簿中建一工作表&…

【vue-router①】router-link跳轉頁面傳遞參數 - 進擊的前端之路(偶爾爬坑java小路) - SegmentFault 思否

在vue項目中&#xff0c;往往會遇到這樣的情況&#xff0c;就是要實現在一個循環列表中&#xff0c;點擊其中一條跳轉到下個頁面&#xff0c;然后將這一條的相關數據帶到下個頁面中顯示&#xff0c;這是個循環列表&#xff0c;無論點哪一條都是跳到相同的頁面&#xff0c;只是填…

RHEL7 USB installation problem and solving

版權聲明&#xff1a;本文為博主原創文章。未經博主同意不得轉載。 https://blog.csdn.net/scruffybear/article/details/37063701 Encountered quite a few problems while install the RHEL7, with the Windows system already installed. Problem 1:/dev/root does not exis…

Vue表單類的父子組件數據傳遞示例_vue.js_腳本之家

使用Vue.js進行項目開發&#xff0c;那必然會使用基于組件的開發方式&#xff0c;這種方式的確給開發和維護帶來的一定的便利性&#xff0c;但如果涉及到組件之間的數據與狀態傳遞交互&#xff0c;就是一件麻煩事了&#xff0c;特別是面對有一大堆表單的頁面。 在這里記錄一下…