欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vite項(xiàng)目如何集成eslint和prettier

 更新時(shí)間:2024年01月02日 09:34:41   作者:jieyucx  
這篇文章主要介紹了vite項(xiàng)目如何集成eslint和prettier問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、eslint介紹

eslint中文官網(wǎng):https://zh-hans.eslint.org/docs/latest/use/getting-started

1. 什么是eslint

  • ESLint是一個(gè)開源的JavaScript代碼靜態(tài)分析工具用于找出代碼中的問題,并提供一致的編碼風(fēng)格。它可以掃描代碼,并根據(jù)預(yù)定義的規(guī)則進(jìn)行分析,然后給出對(duì)應(yīng)的警告或錯(cuò)誤提示。
  • ESLint的使用可以幫助開發(fā)者遵循一致的編碼規(guī)范,提高代碼的質(zhì)量和可維護(hù)性。它可以檢測(cè)到一些常見的編碼錯(cuò)誤、不合理的代碼結(jié)構(gòu)、潛在的問題等,并生成相應(yīng)的警告或錯(cuò)誤信息。同時(shí),ESLint還支持自定義規(guī)則,開發(fā)者可以根據(jù)自己的需求定義特定的規(guī)則來適應(yīng)團(tuán)隊(duì)的編碼風(fēng)格。
  • ESLint可以通過命令行工具、集成開發(fā)環(huán)境`(IDE插件等方式進(jìn)行集成和使用,以便在編碼過程中實(shí)時(shí)分析代碼,減少錯(cuò)誤和提高開發(fā)效率。

2. 為什么需要eslint校驗(yàn)

在前端項(xiàng)目中,ESLint校驗(yàn)是必要的,原因如下:

  • 代碼質(zhì)量保證:ESLint可以通過規(guī)則來檢測(cè)代碼中的潛在問題和錯(cuò)誤,確保代碼的質(zhì)量。它可以檢查常見的錯(cuò)誤、代碼風(fēng)格問題、未使用的變量、未聲明的變量等,從而減少Bug數(shù)量。
  • 統(tǒng)一代碼風(fēng)格:ESLint可以強(qiáng)制執(zhí)行特定的代碼風(fēng)格規(guī)范,確保項(xiàng)目中的代碼風(fēng)格一致。這對(duì)于多人協(xié)作的項(xiàng)目來說尤為重要,可以避免由于不同人員編寫代碼風(fēng)格不統(tǒng)一而導(dǎo)致的閱讀和維護(hù)困難。
  • 提高代碼可讀性:ESLint可以發(fā)現(xiàn)不易察覺的問題,例如未使用的變量、未聲明的變量等,這些問題會(huì)影響代碼的可讀性。通過ESLint的校驗(yàn),可以及時(shí)發(fā)現(xiàn)這些問題,提高代碼的可讀性和維護(hù)性。
  • 節(jié)省時(shí)間和精力:ESLint的自動(dòng)校驗(yàn)可以在開發(fā)過程中實(shí)時(shí)提醒錯(cuò)誤和警告,避免了手動(dòng)查找問題的時(shí)間和精力。這樣開發(fā)人員可以更專注于解決問題和開發(fā)新功能。

總之,ESLint校驗(yàn)在前端項(xiàng)目中是必要的,可以提高代碼質(zhì)量、統(tǒng)一代碼風(fēng)格,增加代碼的可讀性和維護(hù)性,節(jié)省時(shí)間和精力。

二、在vite項(xiàng)目中配置eslint

1. 安裝ESLint和相關(guān)插件

通過命令行工具進(jìn)入項(xiàng)目目錄,然后運(yùn)行以下命令安裝ESLint和相關(guān)依賴:

npm install eslint eslint-plugin-vue @typescript-eslint/parser @typescript-eslint/eslint-plugin eslint-config-standard eslint-plugin-import eslint-plugin-promise eslint-plugin-node -D

(1) eslint-config-standard

eslint-config-standard是一個(gè)ESLint的配置文件,用于定義規(guī)范的代碼樣式和規(guī)則。它基于JavaScript標(biāo)準(zhǔn)風(fēng)格指南,包含了一系列預(yù)定義的規(guī)則和配置,幫助開發(fā)者在編寫JavaScript代碼時(shí)保持一致的風(fēng)格和規(guī)范。

具體來說,eslint-config-standard插件的作用有以下幾個(gè)方面:

  • 規(guī)范代碼風(fēng)格eslint-config-standard定義了一系列規(guī)則,包括縮進(jìn)、命名、引號(hào)、空格等方面,幫助開發(fā)者規(guī)范代碼風(fēng)格,提高代碼可讀性和可維護(hù)性。
  • 避免常見錯(cuò)誤eslint-config-standard還包含了許多規(guī)則來檢測(cè)常見的錯(cuò)誤,比如未聲明的變量、不必要的逗號(hào)、禁止使用無(wú)意義的表達(dá)式等,幫助開發(fā)者避免一些常見的編碼錯(cuò)誤。
  • 提高代碼質(zhì)量:根據(jù)規(guī)范的代碼風(fēng)格和錯(cuò)誤檢測(cè),eslint-config-standard使得開發(fā)者能夠更容易地發(fā)現(xiàn)和糾正代碼中的常見問題,從而提高代碼的質(zhì)量。
  • 可定制性eslint-config-standard是一個(gè)可配置的插件,允許開發(fā)者根據(jù)自己的需求來自定義部分規(guī)則,以滿足項(xiàng)目的特定要求和團(tuán)隊(duì)的共識(shí)。

(2) eslint-plugin-import

eslint-plugin-import是一個(gè)ESLint插件,用于檢查和規(guī)范模塊導(dǎo)入語(yǔ)句的使用。

該插件提供了一些規(guī)則,用于檢查模塊導(dǎo)入語(yǔ)句的正確性和一致性。例如:

  • 檢查導(dǎo)入的模塊是否存在;
  • 檢查導(dǎo)入路徑的大小寫是否正確;
  • 檢查導(dǎo)入的模塊是否符合一定的命名規(guī)范;
  • 檢查導(dǎo)入的模塊是否使用了正確的擴(kuò)展名
  • 檢查導(dǎo)入的模塊是否存在循環(huán)依賴;
  • 檢查導(dǎo)入的模塊是否按照一定的順序排序
  • 檢查導(dǎo)入的模塊是否使用了正確的導(dǎo)入格式(默認(rèn)導(dǎo)入、命名導(dǎo)入或者批量導(dǎo)入);
  • 檢查導(dǎo)入的模塊是否使用了正確的別名;
  • 檢查導(dǎo)入的模塊是否使用了正確的導(dǎo)入位置

通過使用eslint-plugin-import插件,可以幫助開發(fā)者規(guī)范并統(tǒng)一模塊導(dǎo)入語(yǔ)句的使用,提高代碼的可讀性和維護(hù)性。

(3)eslint-plugin-promise

eslint-plugin-promise插件是用于在JavaScript代碼中檢測(cè)并提醒開發(fā)者有關(guān)Promise對(duì)象的使用問題的ESLint插件。它可以幫助開發(fā)者編寫更可靠、更可維護(hù)的異步代碼。

該插件的主要功能包括:

  • 檢測(cè)Promise中的錯(cuò)誤處理:可以檢查在Promise鏈中是否有錯(cuò)誤處理,以避免未捕獲的Promise拒絕。這有助于防止異常在代碼中傳播。
  • 檢測(cè)Promise的誤用:可以檢查不必要或錯(cuò)誤的Promise使用方式,比如在沒有理由的情況下使用Promise構(gòu)造函數(shù),或者在沒有必要的情況下使用Promiseresolvereject方法。
  • 提供最佳實(shí)踐建議:可以提供關(guān)于Promise的最佳實(shí)踐的建議,例如推薦使用Promise.allPromise.race而不是手動(dòng)處理多個(gè)Promise對(duì)象。

通過使用eslint-plugin-promise插件,可以提高代碼質(zhì)量,避免常見的Promise使用錯(cuò)誤,并提供更好的錯(cuò)誤處理和可讀性。這有助于開發(fā)者編寫更健壯和可維護(hù)的代碼。

(4) eslint-plugin-node

eslint-plugin-node是一個(gè)ESLint插件,主要用于在Node.js環(huán)境下對(duì)JavaScript代碼進(jìn)行靜態(tài)代碼分析和規(guī)范檢查。它提供了一系列的規(guī)則,可以幫助開發(fā)者在開發(fā)Node.js應(yīng)用時(shí)遵循最佳實(shí)踐、減少錯(cuò)誤、提高代碼質(zhì)量。

該插件可以用于以下方面的檢查:

  • 引入模塊的規(guī)則:檢查代碼中是否存在未被使用的模塊、未被引入的模塊、循環(huán)引用等問題,避免無(wú)效的引入和模塊循環(huán)依賴。
  • 文件/路徑規(guī)則:檢查文件的命名是否符合規(guī)范、文件路徑是否存在、是否使用了不推薦的文件擴(kuò)展名等。
  • 調(diào)用回調(diào)函數(shù)的規(guī)則:檢查回調(diào)函數(shù)是否正確使用、是否處理了錯(cuò)誤,避免回調(diào)地獄和未處理的錯(cuò)誤。
  • 錯(cuò)誤處理的規(guī)則:檢查代碼中的錯(cuò)誤處理是否完善,是否統(tǒng)一處理錯(cuò)誤、是否遺漏了某些錯(cuò)誤處理等。
  • 全局對(duì)象的規(guī)則:檢查全局對(duì)象的使用是否安全,避免污染全局命名空間和不安全的操作。
  • Node.js相關(guān)的規(guī)則:檢查Node.js特定的API的使用是否正確、是否存在錯(cuò)誤的使用方式、是否使用了已廢棄的API等。

通過運(yùn)用eslint-plugin-node插件,開發(fā)者可以更好地保證Node.js應(yīng)用的代碼質(zhì)量、可讀性和可維護(hù)性,提高開發(fā)效率和代碼質(zhì)量。

(5) eslint-plugin-vue

eslint-plugin-vue 是一個(gè)用于檢測(cè)和修復(fù) Vue.js 代碼的 ESLint 插件。它通過自定義規(guī)則來提供對(duì) Vue.js 代碼的靜態(tài)代碼分析功能,幫助開發(fā)者編寫出更規(guī)范、可維護(hù)、高效的 Vue.js 代碼。

使用 eslint-plugin-vue 插件可以幫助開發(fā)者完成以下功能:

  • 檢測(cè)常見的代碼錯(cuò)誤eslint-plugin-vue 提供了一系列的規(guī)則,可以檢測(cè)常見的代碼錯(cuò)誤,比如使用了未定義的變量、未使用的變量、重復(fù)的屬性等等,以幫助開發(fā)者盡早發(fā)現(xiàn)并解決這些問題。
  • 提供規(guī)范的代碼風(fēng)格eslint-plugin-vue 提供了一些與代碼風(fēng)格相關(guān)的規(guī)則,可以強(qiáng)制使用一致的縮進(jìn)、換行符、引號(hào)等,保持團(tuán)隊(duì)間的代碼風(fēng)格一致性。
  • 增強(qiáng)代碼的可讀性和可維護(hù)性eslint-plugin-vue 可以檢查并修復(fù)一些常見的代碼寫法問題,比如檢測(cè)未使用的組件、未設(shè)置key的列表項(xiàng)、不必要的計(jì)算屬性等,幫助開發(fā)者編寫出更易讀、易維護(hù)的代碼。
  • 支持自定義規(guī)則:除了提供的默認(rèn)規(guī)則外,eslint-plugin-vue 還支持自定義規(guī)則的配置,開發(fā)者可以根據(jù)自己的需求對(duì)代碼進(jìn)行更精細(xì)的檢查。

(6)@typescript-eslint/parser

@typescript-eslint/parser插件是用于解析TypeScript代碼的插件。它可以將TypeScript代碼轉(zhuǎn)換為抽象語(yǔ)法樹(AST),以便其他插件或工具可以分析、處理或修改代碼。

使用@typescript-eslint/parser插件可以提供更準(zhǔn)確的TypeScript語(yǔ)法解析,確保與TypeScript最新版本的語(yǔ)法一致。它還支持一些新的TypeScript特性,如裝飾器和類型注解。

通過使用@typescript-eslint/parser插件,可以在ESLint中使用TypeScript規(guī)則和插件來檢查和修復(fù)TypeScript代碼的問題。這種集成可以幫助開發(fā)人員在開發(fā)過程中盡早發(fā)現(xiàn)潛在的問題,以提高代碼質(zhì)量和可維護(hù)性。

(7)@typescript-eslint/eslint-plugin

@typescript-eslint/eslint-plugin是一個(gè)ESLint插件,用于提供針對(duì)TypeScript代碼的ESLint規(guī)則和功能。

它的主要用途包括:

  • 靜態(tài)類型檢查TypeScript的一個(gè)重要特點(diǎn)是靜態(tài)類型檢查,@typescript-eslint/eslint-plugin可以幫助你在編寫代碼時(shí)進(jìn)行更嚴(yán)格的類型檢查。它包含了一些規(guī)則,可以檢查函數(shù)參數(shù)、變量賦值、類型聲明等方面的類型錯(cuò)誤。
  • 語(yǔ)法規(guī)則檢查@typescript-eslint/eslint-plugin還包含了一些規(guī)則,用于檢查TypeScript代碼的語(yǔ)法規(guī)范。它可以幫助你發(fā)現(xiàn)一些不符合最佳實(shí)踐的代碼,比如使用不推薦的語(yǔ)法、不規(guī)范的變量命名等等。
  • 代碼風(fēng)格約定ESLint可以幫助你約定一致的代碼風(fēng)格,@typescript-eslint/eslint-plugin提供了一些規(guī)則,可以檢查變量命名、縮進(jìn)、換行符等代碼風(fēng)格方面的問題。

2. 在項(xiàng)目根目錄新增.eslintrc.js配置文件

eslintrc.js規(guī)則參考:https://zh-hans.eslint.org/docs/latest/rules/

當(dāng)然這里面的校驗(yàn)規(guī)則都是自己配置的,具體需要如何配置可以根據(jù)項(xiàng)目需求和團(tuán)隊(duì)的代碼風(fēng)格配置。

下面是一些比較常用的配置。

  • extends: 用于繼承其他配置。可以使用預(yù)設(shè)的配置,如"eslint:recommended"表示使用eslint的推薦配置,也可以使用第三方的擴(kuò)展配置。
  • rules: 用于設(shè)置規(guī)則??梢酝ㄟ^設(shè)置每個(gè)規(guī)則的值來確定其行為,如"no-console": "error"表示禁止使用console,并將其視為錯(cuò)誤。
  • env: 用于指定代碼運(yùn)行的環(huán)境??梢允褂妙A(yù)設(shè)的環(huán)境,如"browser"表示在瀏覽器環(huán)境中運(yùn)行代碼,也可以自定義環(huán)境。
  • globals: 用于定義全局變量??梢詫⑷肿兞康拿Q和其是否允許被重寫進(jìn)行配置。
  • parserOptions: 用于配置解析器的選項(xiàng)??梢灾付ń馕銎鞯陌姹?、解析特定的ECMAScript特性等。
  • plugins: 用于加載eslint插件。可以使用第三方插件來拓展eslint的功能。
  • settings: 用于共享配置信息??梢栽O(shè)置全局共享的配置信息,供不同的eslint規(guī)則使用。

贈(zèng)送一波常用relse、globals配置

eslintrc.js

module.exports = {
  extends: [
 	'standard', // 繼承標(biāo)準(zhǔn)規(guī)則
  	'plugin:vue/vue3-recommended', // 如果是Vue 3的項(xiàng)目
    'plugin:vue/essential', // 如果是Vue 2的項(xiàng)目
    'plugin:@typescript-eslint/recommended'
    ], 
  parserOptions: {
    parser: '@typescript-eslint/parser',
  },
  globals: {
    Component: true, // 注冊(cè)組件
    Behavior: true, // 注冊(cè)行為
    requirePlugin: true, // 引入插件
    postMessage: true, // 向 Worker 線程發(fā)送消息
    onmessage: true, // 監(jiān)聽 Worker 線程的消息
    self: true, // Worker 線程全局對(duì)象
    importScripts: true, // 引入第三方庫(kù)
    onerror: true, // 監(jiān)聽錯(cuò)誤
    onmessageerror: true, // 監(jiān)聽 Worker 線程消息錯(cuò)誤
    close: true, // 關(guān)閉 Worker 線程
    open: true, // 創(chuàng)建 Worker 線程
    XMLHttpRequest: true, // ajax
    FormData: true, // ajax
    FileReader: true, // ajax
    setInterval: true, // 定時(shí)器
    setTimeout: true, // 定時(shí)器
    clearInterval: true, // 定時(shí)器
    clearTimeout: true, // 定時(shí)器
    Image: true, // 圖片
    Audio: true, // 音頻
    WebSocket: true, // WebSocket
    IntersectionObserver: true, // 監(jiān)聽節(jié)點(diǎn)是否進(jìn)入屏幕可視區(qū)域
    Promise: true,  // Promise
  },
  rules: {
    "no-console": "off", // 允許使用console
    "no-debugger": "off", // 允許使用debugger
    "no-unused-vars": "off", // 允許聲明未使用變量
    "no-undef": "off", // 允許使用未定義變量
    "no-irregular-whitespace": "off", // 允許使用不規(guī)則的空白符
    "no-mixed-spaces-and-tabs": "off", // 允許混用tab和空格
    "no-tabs": "off", // 允許使用tab
    "no-trailing-spaces": "off", // 允許行尾有空白
    "no-multiple-empty-lines": "off", // 允許多行空白
    "no-prototype-builtins": "off", // 允許使用hasOwnProperty
    "no-async-promise-executor": "off", // 允許使用異步函數(shù)作為Promise執(zhí)行器
    "no-useless-escape": "off", // 允許使用無(wú)用的轉(zhuǎn)義符
    "no-useless-catch": "off", // 允許使用無(wú)用的catch
    "no-constant-condition": "off", // 允許使用常量作為判斷條件
    "no-empty": "off", // 允許空的代碼塊
    "no-unsafe-finally": "off", // 允許在finally中使用控制流語(yǔ)句
    "no-throw-literal": "off", // 允許拋出字面量錯(cuò)誤
    "no-sequences": "off", // 允許使用逗號(hào)操作符
    "no-unreachable": "off", // 允許在return、throw、continue和break語(yǔ)句后出現(xiàn)不可達(dá)代碼
    "no-unsafe-negation": "off", // 允許對(duì)關(guān)系運(yùn)算符的左操作數(shù)使用否定操作符
    "no-unsafe-optional-chaining": "off", // 允許使用不安全的可選鏈
    "no-unused-expressions": "off", // 允許使用未使用的表達(dá)式
    "no-useless-backreference": "off", // 允許使用無(wú)用的反向引用
    "no-unsafe-regex": "off", // 允許使用無(wú)效的正則表達(dá)式
    "no-regex-spaces": "off", // 允許正則表達(dá)式中使用多個(gè)空格
    "no-empty-character-class": "off", // 允許在正則表達(dá)式中使用空字符集
    "no-control-regex": "off", // 允許在正則表達(dá)式中使用控制字符
    "no-else-return": "off", // 允許在else代碼塊中return
    "no-empty-pattern": "off", // 允許解構(gòu)中出現(xiàn)空的模式
    "no-extra-boolean-cast": "off", // 允許不必要的布爾類型轉(zhuǎn)換
    "no-extra-semi": "off", // 允許不必要的分號(hào)
    "no-extra-parens": "off", // 允許不必要的括號(hào)
    "no-extra-bind": "off", // 允許不必要的函數(shù)綁定
    "no-extra-label": "off", // 允許不必要的標(biāo)簽
    "no-extra-boolean-cast": "off", // 允許不必要的布爾類型轉(zhuǎn)換
  },
};

3. 配置package.json,lint命令,來校驗(yàn)js文件

package.json

"lint": "eslint --ext .js src/"

這行命令的意思就是

  • lint: 這是命令的名稱,可以根據(jù)項(xiàng)目需要進(jìn)行更改。
  • eslint: 這是運(yùn)行ESLint工具的命令。
  • --ext .js: 這是命令的選項(xiàng),用于指定ESLint檢查的文件擴(kuò)展名,這里指定為.js表示只檢查JavaScript文件。
  • src/: 這是命令的參數(shù),指定要檢查的文件目錄,這里指定為src/表示檢查項(xiàng)目中的src目錄下的所有文件。

通過運(yùn)行這個(gè)命令,可以對(duì)項(xiàng)目中的JavaScript文件進(jìn)行靜態(tài)代碼分析,檢查是否符合預(yù)定義的代碼風(fēng)格規(guī)則,幫助提高代碼質(zhì)量和可維護(hù)性。

當(dāng)然可以擴(kuò)展檢查其他文件,就在.js后面用逗號(hào)分隔加就行了,比如我們還要檢查.vue文件就可以這樣寫

"lint": "eslint --ext .js,.vue src/"

4. 執(zhí)行npm run lint

npm run lint

執(zhí)行這個(gè)命令來檢查文件。

這時(shí)如果你的package.json文件中的type:module可能會(huì)報(bào)錯(cuò)

這時(shí)我們將module改為commonjs就可以了

改完重新執(zhí)行npm run lint

這時(shí)它就會(huì)檢查js文件有哪些不符合規(guī)范了

針對(duì)于一些報(bào)錯(cuò),其實(shí)不影響開發(fā)規(guī)范的,我們可以禁用掉,比如我這里的這兩個(gè)報(bào)錯(cuò),這時(shí)我們可以去.eslintrc.js文件中配置rules規(guī)則

將這兩個(gè)禁用掉之后,再次執(zhí)行npm run lint

可以看到?jīng)]有任何警告和報(bào)錯(cuò),說明校驗(yàn)通過拉。

5. 打包時(shí)校驗(yàn)eslint

這時(shí)想在打包時(shí)校驗(yàn)eslint,可以這樣配置

讓其先執(zhí)行一遍校驗(yàn),校驗(yàn)通過之后再執(zhí)行打包。

三、使用prettierrc格式化文件

當(dāng)我們把eslint配置文件加上之后,可能項(xiàng)目中很多地方會(huì)報(bào)不符合規(guī)范,這時(shí)如果手動(dòng)根據(jù)提示更改,不知道要改到何年馬月了,這時(shí)推薦一款格式化代碼文件的工具Prettier

安裝之后,我們?cè)陧?xiàng)目根目錄下新建一個(gè).prettierrc.js的配置文件

prettierrc.js

//此處的規(guī)則供參考,其中多半其實(shí)都是默認(rèn)值,可以根據(jù)個(gè)人習(xí)慣改寫
module.exports = {
  printWidth: 80, //單行長(zhǎng)度
  tabWidth: 2, //縮進(jìn)長(zhǎng)度
  useTabs: false, //使用空格代替tab縮進(jìn)
  semi: true, //句末使用分號(hào)
  singleQuote: true, //使用單引號(hào)
  quoteProps: 'as-needed', //僅在必需時(shí)為對(duì)象的key添加引號(hào)
  jsxSingleQuote: true, // jsx中使用單引號(hào)
  trailingComma: 'all', //多行時(shí)盡可能打印尾隨逗號(hào)
  bracketSpacing: true, //在對(duì)象前后添加空格-eg: { foo: bar }
  jsxBracketSameLine: true, //多屬性html標(biāo)簽的‘>'折行放置
  arrowParens: 'always', //單參數(shù)箭頭函數(shù)參數(shù)周圍使用圓括號(hào)-eg: (x) => x
  requirePragma: false, //無(wú)需頂部注釋即可格式化
  insertPragma: false, //在已被preitter格式化的文件頂部加上標(biāo)注
  proseWrap: 'preserve', //不知道怎么翻譯
  htmlWhitespaceSensitivity: 'ignore', //對(duì)HTML全局空白不敏感
  vueIndentScriptAndStyle: false, //不對(duì)vue中的script及style標(biāo)簽縮進(jìn)
  endOfLine: 'lf', //結(jié)束行形式
  embeddedLanguageFormatting: 'auto', //對(duì)引用代碼進(jìn)行格式化
};

然后我們將格式化文檔的方式,默認(rèn)配置為Prettier

這樣以后我們格式化文檔時(shí),就可以根據(jù)我們配置的prettier規(guī)則來格式化文檔,這樣可以和eslint校驗(yàn)規(guī)則配合使用,輕松實(shí)現(xiàn)代碼規(guī)范。

四、git提交時(shí)執(zhí)行eslint校驗(yàn)

把eslint配置完成之后,就算我們沒有解決eslint校驗(yàn)產(chǎn)生的報(bào)錯(cuò)提醒,我們照樣可以將代碼通過git提交到代碼倉(cāng)庫(kù),這樣顯然是不行。

此時(shí)我們需要一個(gè)工具可以在git提交代碼是進(jìn)行校驗(yàn),它就是husky 你可以將它叫做‘哈士奇’,哈哈哈,諧音梗。

Husky 是一個(gè)用于在 Git 提交(git commit)或 git 提交代碼(git push)之前運(yùn)行腳本的工具。

它允許我們?cè)诖a提交之前執(zhí)行一些檢查、測(cè)試、格式化等操作,來保證代碼質(zhì)量和規(guī)范性。

husky使用步驟

1. 安裝 Husky:

在項(xiàng)目根目錄下,執(zhí)行 npm install husky --save-dev 命令來安裝 Husky。

npm install husky --save-dev

2.執(zhí)行npx husky install

npx husky install

這個(gè)命令會(huì)在項(xiàng)目跟目錄下生成一個(gè)husky的文件夾

3. 配置提交校驗(yàn)

npx husky add .husky/pre-commit “npm run lint”

這時(shí)會(huì)在husky文件夾下生成一個(gè)pre-commit文件

這段命令的含義是在前端項(xiàng)目中使用husky插件來添加一個(gè)pre-commit鉤子,并配置該鉤子在每次提交代碼前執(zhí)行"npm run lint"命令。

具體解釋如下:

  • npx husky add:使用npx運(yùn)行husky插件的add命令,用于添加一個(gè)鉤子。
  • husky/pre-commit:指定要添加的鉤子的路徑,這里是pre-commit鉤子。
  • npm run lint:指定在pre-commit鉤子觸發(fā)時(shí)需要執(zhí)行的命令,這里是運(yùn)行l(wèi)int腳本。

通過執(zhí)行該命令,husky會(huì)幫助將指定的命令綁定到pre-commit鉤子上,這樣每次在提交代碼前,將會(huì)先執(zhí)行"npm run lint"命令來檢查代碼質(zhì)量,如果代碼檢查不通過,則不允許提交。

這有助于提升團(tuán)隊(duì)協(xié)作開發(fā)時(shí)代碼的質(zhì)量和一致性。

總結(jié)

好啦以上就是關(guān)于如何在vite項(xiàng)目中配置esLint校驗(yàn)的介紹啦

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue實(shí)現(xiàn)類似淘寶商品評(píng)價(jià)頁(yè)面星級(jí)評(píng)價(jià)及上傳多張圖片功能

    vue實(shí)現(xiàn)類似淘寶商品評(píng)價(jià)頁(yè)面星級(jí)評(píng)價(jià)及上傳多張圖片功能

    最近在寫一個(gè)關(guān)于vue的商城項(xiàng)目,然后集成在移動(dòng)端中,開發(fā)需求中有一界面,類似淘寶商城評(píng)價(jià)界面!接下來通過本文給大家分享vue實(shí)現(xiàn)類似淘寶商品評(píng)價(jià)頁(yè)面星級(jí)評(píng)價(jià)及上傳多張圖片功能,需要的朋友參考下吧
    2018-10-10
  • vue添加錨點(diǎn),實(shí)現(xiàn)滾動(dòng)頁(yè)面時(shí)錨點(diǎn)添加相應(yīng)的class操作

    vue添加錨點(diǎn),實(shí)現(xiàn)滾動(dòng)頁(yè)面時(shí)錨點(diǎn)添加相應(yīng)的class操作

    這篇文章主要介紹了vue添加錨點(diǎn),實(shí)現(xiàn)滾動(dòng)頁(yè)面時(shí)錨點(diǎn)添加相應(yīng)的class操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • vue-router 路由傳參用法實(shí)例分析

    vue-router 路由傳參用法實(shí)例分析

    這篇文章主要介紹了vue-router 路由傳參用法,結(jié)合實(shí)例形式分析了vue-router 路由傳參基本使用方法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • Vue文件如何代替?zhèn)鹘y(tǒng)的HTML文件

    Vue文件如何代替?zhèn)鹘y(tǒng)的HTML文件

    隨著前端工程化的不斷推進(jìn),傳統(tǒng)的HTML、CSS、JavaScript三者分離的開發(fā)模式逐漸顯露出一些不足之處,尤其是在構(gòu)建復(fù)雜的單頁(yè)應(yīng)用(SPA)時(shí),Vue.js作為一個(gè)現(xiàn)代化的前端框架,提供了多種工具和技術(shù)來簡(jiǎn)化開發(fā)流程,本文將探討.vue文件是如何替代傳統(tǒng)HTML文件的角色
    2024-10-10
  • Vue頁(yè)面加載后和刷新后的樣式差異問題的解決方案

    Vue頁(yè)面加載后和刷新后的樣式差異問題的解決方案

    在使用?Vue?構(gòu)建的單頁(yè)面應(yīng)用中,頁(yè)面的樣式可能因?yàn)槁酚汕袚Q、組件加載順序或樣式的動(dòng)態(tài)加載導(dǎo)致樣式混亂,尤其是在復(fù)雜的應(yīng)用中,隨著頁(yè)面的切換或者刷新,按鈕、文字、布局等可能表現(xiàn)出不同的樣式,所以本文給大家介紹了Vue頁(yè)面加載后和刷新后的樣式差異問題的解決方案
    2025-01-01
  • 基于vue中對(duì)鼠標(biāo)劃過事件的處理方式詳解

    基于vue中對(duì)鼠標(biāo)劃過事件的處理方式詳解

    今天小編就為大家分享一篇基于vue中對(duì)鼠標(biāo)劃過事件的處理方式詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Vue通過input篩選數(shù)據(jù)

    Vue通過input篩選數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了Vue通過input篩選數(shù)據(jù)的相關(guān)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • element-ui多選表格禁用某一行不被選擇問題

    element-ui多選表格禁用某一行不被選擇問題

    這篇文章主要介紹了element-ui多選表格禁用某一行不被選擇問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue中的非父子間的通訊問題簡(jiǎn)單的實(shí)例代碼

    vue中的非父子間的通訊問題簡(jiǎn)單的實(shí)例代碼

    這篇文章主要介紹了vue中的非父子間的通訊問題簡(jiǎn)單的實(shí)例代碼,需要的朋友可以參考下
    2017-07-07
  • vue實(shí)現(xiàn)帶縮略圖的輪播圖效果

    vue實(shí)現(xiàn)帶縮略圖的輪播圖效果

    這篇文章主要為大家詳細(xì)介紹了如何使用vue實(shí)現(xiàn)帶縮略圖的輪播圖效果,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的可以參考下
    2024-02-02

最新評(píng)論