首頁 web前端 js教程 在webpack中使用eslint配置(詳細教學)

在webpack中使用eslint配置(詳細教學)

Jun 11, 2018 am 10:23 AM
eslint webpack

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

webpack中eslint使用

首先,要讓webpack支援eslint,就要安裝eslint-loader ,指令如下:

npm install --save-dev eslint-loader
登入後複製

在webpack .config.js 中加入以下程式碼:

{
  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,指令如下:

npm install --save-dev eslint
登入後複製

最後,專案想要使用那些eslin規則,可以建立一個設定檔'.eslintrc .js',程式碼如下:

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 設定項目

  1. #root 限定設定檔的使用範圍

  2. parser 指定eslint的解析器

  3. parserOptions 設定解析器選項

  4. extends 指定eslint規格

  5. #plugins 引用第三方的外掛程式

  6. ##env 指定程式碼運行的宿主環境

  7. rules 啟用額外的規則或覆寫預設的規則

  8. globals 宣告在程式碼中的自訂全域變數

在我們使用eslint時,設定檔中的rules 設定項是否是不可或缺的?

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

extends

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

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

官方推薦

只需在.eslintrc.js 中加入以下程式碼:

extends: 'eslint:recommended',
extends: 'eslint:all',
登入後複製

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

第三方分享

使用第三方分享的,我們一般需要安裝相關的外掛程式碼如下:

npm install --save-dev eslint-config-airbnb // bnb
npm install --save-dev eslint-config-standard // standard
登入後複製

在.eslintrc.js 中加入以下程式碼:

extends: 'eslint:google',
// or
extends: 'eslint:standard',
登入後複製

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

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

雖然,這些第三方的擴充功能很不錯,但是有時我們需要定義一些比較個人化的規則,我們就需要加入 rules 設定項。

設定規則

在.eslintrc.js 檔案中加入 rules, 程式碼如下:

{
  "rules": {
    "semi": ["error", "always"],
    "quotes": ["error", "double"]
  }
}
登入後複製

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

  1. "off" or 0 - 關閉規則

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

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

這些規則一般分為兩類:

  1. 新增預設或第三庫中沒有的

  2. 覆寫預設或第三庫的

我們的專案中可能會有一些其他的檔案也需要進行格式規範,如:html, vue, react等,對於這些檔案的處理,我們需要引入第三方插件。

plugins(html)

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

npm install --save-dev eslint-plugin-html
登入後複製

這個外掛程式將會提醒模組腳本之間模擬瀏覽器共享全域變數的行為,因為這不適用於模組腳本。

這個外掛程式也可以擴充文件,如:.vue,.jsx

.eslintrc.js中,加入如下組態項目:

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, 我們就需要在該目錄中加入如下的設定項:

{
  "root": true
}
登入後複製

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

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

parser(指定解析器)

babel-eslint 解析器是一种使用频率很高的解析器,因为现在很多公司的很多项目目前都使用了es6,为了兼容性考虑基本都使用babel插件对代码进行编译。而用babel编译后的代码使用 babel-eslint 这款解析器可以避免不必要的麻烦。

babel-eslint 安装命令:

npm install --save-dev babel-eslint
登入後複製

在 .eslintrc.js 配置文件中添加如下配置项代码:

parser: 'babel-eslint',
登入後複製

如果你使用的默认解析器的话,且在代码中使用了浏览器有兼容性的问题的js新特性,使用webpack编译就会出现问题,这时我们一般装最新的eslint或者安装是使用 babel-eslint 来解决问题。

env(环境)

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

"env": {
  "browser": true, //
  "node": true //
}
登入後複製

指定了环境,你就可以放心的使用它们的全局变量和属性。

global

指定全局变量。

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

"globals": {
  "var1": true,
  "var2": false 
}
登入後複製

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

在JS中如何改变单物体透明度

在JS中如何实现通过拖拽改变物体大小

在vue中使用cli如何实现重构多页面脚手架

以上是在webpack中使用eslint配置(詳細教學)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

VUE3入門教學:使用Webpack進行打包和構建 VUE3入門教學:使用Webpack進行打包和構建 Jun 15, 2023 pm 06:17 PM

Vue是一款優秀的JavaScript框架,它可以幫助我們快速建立互動性強、高效性好的Web應用程式。 Vue3是Vue的最新版本,它引入了許多新的功能和功能。 Webpack是目前最受歡迎的JavaScript模組打包器和建置工具之一,它可以幫助我們管理專案中的各種資源。本文就為大家介紹如何使用Webpack打包和建構Vue3應用程式。 1.安裝Webpack

vite和webpack的差別是什麼 vite和webpack的差別是什麼 Jan 11, 2023 pm 02:55 PM

差異:1、webpack伺服器啟動速度比vite慢;由於vite啟動的時候不需要打包,也就不需要分析模組依賴、編譯,所以啟動速度非常快。 2.vite熱更新比webpack快;vite在HRM方面,當某個模組內容改變時,就讓瀏覽器去重新請求該模組即可。 3.vite用esbuild預先建置依賴,而webpack基於node。 4.vite的生態不如webpack,載入器、插件不夠豐富。

react怎麼刪除eslint react怎麼刪除eslint Dec 30, 2022 am 09:46 AM

react刪除eslint的方法:1、執行「npm run eject」指令;2、在package.json中修改程式碼為「 "eslintConfig": {"extends": ["react-app","re​​act-app/jest" ],"rules": {"no-undef": "off"...}」;3、重啟項目即可。

如何使用PHP和webpack進行模組化開發 如何使用PHP和webpack進行模組化開發 May 11, 2023 pm 03:52 PM

隨著Web開發技術的不斷發展,前後端分離、模組化開發已成為了廣泛的趨勢。 PHP作為一種常用的後端語言,在進行模組化開發時,我們需要使用一些工具來實現模組的管理和打包,其中webpack是一個非常好用的模組化打包工具。本文將介紹如何使用PHP和webpack進行模組化開發。一、什麼是模組化開發模組化開發是指將程式分解成不同的獨立模組,每個模組都有自己的作

webpack怎麼將es6轉成es5的模組 webpack怎麼將es6轉成es5的模組 Oct 18, 2022 pm 03:48 PM

設定方法:1.用導入的方法把ES6程式碼放到打包的js程式碼檔案中;2、利用npm工具安裝babel-loader工具,語法「npm install -D babel-loader @babel/core @babel/preset- env」;3、建立babel工具的設定檔「.babelrc」並設定轉碼規則;4、在webpack.config.js檔案中設定打包規則即可。

使用Spring Boot和Webpack建構前端工程和插件系統 使用Spring Boot和Webpack建構前端工程和插件系統 Jun 22, 2023 am 09:13 AM

隨著現代Web應用程式的複雜性不斷增加,建立優秀的前端工程和插件系統變得越來越重要。隨著SpringBoot和Webpack的流行,它們成為了一個建構前端工程和插件系統的完美組合。 SpringBoot是一個Java框架,它以最小的配置需求來建立Java應用程式。它提供了許多有用的功能,例如自動配置,使開發人員可以更快、更輕鬆地建立和部署Web應用程式。 W

vue webpack可打包哪些文件 vue webpack可打包哪些文件 Dec 20, 2022 pm 07:44 PM

在vue中,webpack可以將js、css、圖片、json等檔案打包為適當的格式,以供瀏覽器使用;在webpack中js、css、圖片、json等檔案類型都可以被當作模組來使用。 webpack中各種模組資源可打包合併成一個或多個包,並且在打包的過程中,可以對資源進行處理,如壓縮圖片、將scss轉成css、將ES6語法轉成ES5等可以被html識別的文件類型。

Webpack是什麼?詳解它是如何運作的? Webpack是什麼?詳解它是如何運作的? Oct 13, 2022 pm 07:36 PM

Webpack是一款模組打包工具。它為不同的依賴創建模組,將其整體打包成可管理的輸出檔案。這一點對於單頁面應用程式(現今Web應用的事實標準)來說特別有用。

See all articles