vite項(xiàng)目如何集成eslint和prettier
一、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ù),或者在沒有必要的情況下使用Promise的resolve或reject方法。 - 提供最佳實(shí)踐建議:可以提供關(guān)于
Promise的最佳實(shí)踐的建議,例如推薦使用Promise.all和Promise.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à)及上傳多張圖片功能
最近在寫一個(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操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08
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中對(duì)鼠標(biāo)劃過事件的處理方式詳解
今天小編就為大家分享一篇基于vue中對(duì)鼠標(biāo)劃過事件的處理方式詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08
vue中的非父子間的通訊問題簡(jiǎn)單的實(shí)例代碼
這篇文章主要介紹了vue中的非父子間的通訊問題簡(jiǎn)單的實(shí)例代碼,需要的朋友可以參考下2017-07-07

