国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Eslint:vue3項(xiàng)目添加eslint(standard規(guī)則)

這篇具有很好參考價(jià)值的文章主要介紹了Eslint:vue3項(xiàng)目添加eslint(standard規(guī)則)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1.創(chuàng)建一個(gè)vue3項(xiàng)目

創(chuàng)建指令為:npm creat vite@latest
image.png
根據(jù)指令依次運(yùn)行:
image.png
這樣子我們就創(chuàng)建了一個(gè)純凈的vite+vue3+ts的項(xiàng)目模板,運(yùn)行起來為:
image.png

2.添加eslint

(1)安裝eslint:
npm install -D eslint
(2)初始化eslint:
npx eslint --init
image.png
eslint-config-standard @vue/eslint-config-standard,前端,vue.js,npm

在package.json中增加一句腳本用于檢測(cè)和修復(fù)代碼:

  "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix"

image.png
此時(shí)運(yùn)行npm run lint,會(huì)看到這么一串報(bào)錯(cuò):
image.png

3.解決引入了eslint之后的報(bào)錯(cuò)問題

(1.)按照?qǐng)?bào)錯(cuò)信息對(duì) .eslintrc.cjs 中的parserOptions.project進(jìn)行相應(yīng)配置:
補(bǔ)充:關(guān)于我說了要在parserOptions增加project,請(qǐng)移步eslint官網(wǎng):
https://typescript-eslint.io/linting/troubleshooting/#more-details

module.exports = {
  ...
  parserOptions: {
    ecmaVersion: 'latest',
    sourceType: 'module',
    project: ['tsconfig.json'], // 新增
    ...
  },
  ...
}

(2.)再次運(yùn)行依然有錯(cuò)誤
image.png
這里圈出的錯(cuò)誤是由于解析vue文件錯(cuò)誤導(dǎo)致的,在eslint官網(wǎng)中也有這個(gè)問題:
移步官方文檔:我想在vue中使用eslint,結(jié)果發(fā)生了解析錯(cuò)誤?
https://typescript-eslint.io/linting/troubleshooting#i-am-running-into-errors-when-parsing-typescript-in-my-vue-files
image.png
(3)再次運(yùn)行依然有錯(cuò)誤:
這次的錯(cuò)誤也是解析vue文件導(dǎo)致的,可參考eslint官網(wǎng)的問題解答:
https://typescript-eslint.io/linting/troubleshooting/#i-get-errors-telling-me-the-file-must-be-included-in-at-least-one-of-the-projects-provided
image.png
新增配置:extraFileExtensions:[‘.vue’],
image.png
(4)再次運(yùn)行依然有錯(cuò)誤:
參考:https://typescript-eslint.io/linting/troubleshooting/#i-get-errors-telling-me-eslint-was-configured-to-run–however-that-tsconfig-does-not–none-of-those-tsconfigs-include-this-file
官網(wǎng)回答重點(diǎn)是這句話:In that case, viewing the .eslintrc.cjs in an IDE with the ESLint extension will show the error notice that the file couldn’t be linted because it isn’t included in tsconfig.json
告訴我們.eslintrc.cjs和vite.config.ts應(yīng)該包含在tsconfig.json文件中的includes里面
image.png
按照?qǐng)?bào)錯(cuò)信息對(duì) tsconfig.json 進(jìn)行相應(yīng)配置:

{
  ...
  // 新增 .eslintrc.cjs 以及 vite.config.ts
  "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue", ".eslintrc.cjs", "vite.config.ts"],
  ...
}

image.png
(5)再次運(yùn)行還是有一個(gè)錯(cuò)誤,我們接著處理
image.png
一個(gè)是 src 目錄下 vite-env.d.ts 中不鼓勵(lì)使用三斜線引用 /// 而引發(fā)的錯(cuò)誤,我們通過注釋讓它忽略這個(gè)錯(cuò)誤。

報(bào)錯(cuò)信息:Do not use a triple slash reference for vite/client, use `import` style instead.eslint(@typescript-eslint/triple-slash-reference)
復(fù)制代碼
// eslint-disable-next-line @typescript-eslint/triple-slash-reference
/// <reference types="vite/client" />

image.png
(6)接著我們運(yùn)行npm run lint,發(fā)現(xiàn)所有的報(bào)錯(cuò)都已經(jīng)解決了,寫點(diǎn)代碼去測(cè)試一下,發(fā)現(xiàn)通過npm run lint也能幫我們進(jìn)行檢測(cè)和格式化。說明我們的eslint已經(jīng)成功的引入到了vite項(xiàng)目中。此時(shí)我們的項(xiàng)目狀態(tài)為:vite+vue3+eslint。但是eslint的觸發(fā)需要我們手動(dòng)使用npm run lint來觸發(fā)。接下來我們處理下,怎么在commit的時(shí)候自動(dòng)的觸發(fā)eslint。

4.添加git倉庫

運(yùn)行:git init
image.png

5.添加commitLint

工具前置知識(shí),工具介紹:

  • lint-staged 是一個(gè)專門針對(duì)已放入 Git 暫存區(qū)的文件進(jìn)行檢查的工具
  • husky 能提供監(jiān)聽 Git 操作并執(zhí)行腳本代碼的能力

一:安裝配置 lint-staged:實(shí)現(xiàn)專門針對(duì) git 暫存區(qū)的文件進(jìn)行風(fēng)格檢查
(1).安裝依賴包

npm i lint-staged --save-dev

(2).在 package.json 中配置 lint-staged,利用它來調(diào)用 eslint 和 stylelint 去檢查暫存區(qū)內(nèi)的代碼

{
  // ...
  "lint-staged": {
    "*.{vue,js}": [
      "npm run lint"
    ]
  }
}

image.png
二:安裝配置 husky:實(shí)現(xiàn)在git 提交時(shí)執(zhí)行 lint-staged
(1).安裝依賴包

npm i husky --save-dev

(2)在 package.json中配置快捷命令,用來在安裝項(xiàng)目依賴時(shí)生成 husky 相關(guān)文件

{
  // ...
  "scripts": {
    // ...
    "postinstall": "husky install"
  },
}

image.png
(3)配置后執(zhí)行 npm i 就會(huì)在項(xiàng)目根目錄生成 .husky/_ 目錄。

npm i 

image.png
(4)執(zhí)行以下代碼,使用 husky 生成 git 操作的監(jiān)聽鉤子腳本

npx husky add .husky/pre-commit "npx lint-staged"

image.png
執(zhí)行后成功后會(huì)生成腳本文件 .husky/pre-commit (在vscode中可以看到),它包含了命令行語句: npx lint-staged
image.png
到此你就完成了git commit時(shí)自動(dòng)去觸發(fā)eslint的檢測(cè)和修復(fù)。測(cè)試一下:
修改部分代碼(一定要修改下,因?yàn)閘int-staged是對(duì)暫存區(qū)的文件進(jìn)行檢測(cè)),然后git add . git commit一下,有以下的代碼出現(xiàn),就說明git commit時(shí)自動(dòng)觸發(fā)了eslint
image.png

6.添加prettier(看自己的需求添不添加)

prettier的添加,主要是看自己需不需要。這個(gè)插件添加的原因前面的文章已經(jīng)說過了,這個(gè)就不贅述了。
1.安裝必須的包

  • prettier - prettier 本體
  • eslint-config-prettier - 關(guān)閉 ESLint 中與 Prettier 中發(fā)生沖突的規(guī)則
  • eslint-plugin-prettier - 將 Prettier 的規(guī)則設(shè)置到 ESLint 的規(guī)則中
npm i prettier eslint-config-prettier eslint-plugin-prettier -D

2.在根目錄添加一個(gè) .prettierrc.cjs 文件(注意是cjs文件,否則會(huì)報(bào)錯(cuò)的),內(nèi)容如下:

module.exports = {
  tabWidth: 4, // 指定每個(gè)縮進(jìn)級(jí)別的空格數(shù)<int>,默認(rèn)2
  useTabs: false, // 用制表符而不是空格縮進(jìn)行<bool>,默認(rèn)false
  printWidth: 300, //一行的字符數(shù),如果超過會(huì)進(jìn)行換行,默認(rèn)為80
  singleQuote: true, //字符串是否使用單引號(hào),默認(rèn)為false,使用雙引號(hào)
  endOfLine: 'auto', //避免報(bào)錯(cuò)delete (cr)的錯(cuò)
  proseWrap: 'always',
  semi: false, // 不加分號(hào)
  trailingComma: 'none', // 結(jié)尾處不加逗號(hào)
  htmlWhitespaceSensitivity: 'ignore', // 忽略'>'下落問題
}

3.修改 ESLint 配置,使 Eslint 兼容 Prettier 規(guī)則
plugin:prettier/recommended 的配置需要注意的是,一定要放在最后。因?yàn)閑xtends中后引入的規(guī)則會(huì)覆蓋前面的規(guī)則。也就是說你可以在.prettierrc.cjs 中定義自己的風(fēng)格代碼。到時(shí)候,本地的prettier插件會(huì)根據(jù)這個(gè)文件來格式化,項(xiàng)目安裝的prettier也會(huì)根據(jù)該文件來格式化。且eslint的風(fēng)格與prettier風(fēng)格沖突的地方會(huì)以prettier為主

module.exports = {
  env: {
    browser: true,
    es2021: true,
    node: true
  },
  extends: [
    'plugin:vue/vue3-essential',
    'standard-with-typescript',
    'plugin:prettier/recommended' // 新增
  ],
  overrides: [
  ],
  parser: 'vue-eslint-parser',
  parserOptions: {
    ecmaVersion: 'latest',
    sourceType: 'module',
    parser: '@typescript-eslint/parser',
    project: ['tsconfig.json'], // 新增
    extraFileExtensions: ['.vue']
  },
  plugins: [
    'vue'
  ],
  rules: {
  }
}

總結(jié):

1.可以看到我們自己新建的vite項(xiàng)目來自己添加standard規(guī)則會(huì)有各種的bug,雖然這種bug在eslint的官網(wǎng)都能解決,但是還是很費(fèi)神的,關(guān)鍵還是在于eslint和vite融合的不夠完美(也怪更新的太快了),不能直接初始化好了就可以用(像vue2一樣)。所以總結(jié)下來的話,我認(rèn)為還是在剛建立項(xiàng)目的時(shí)候就去添加eslint,然后使用自定義的規(guī)則來做,參考我的上一篇文章。
2.另外的話,此時(shí)用npx eslint --init的方式只能添加standard規(guī)則和xo規(guī)則,并沒有airbnb規(guī)則。以后應(yīng)該會(huì)有,所以此時(shí)還是用standard規(guī)則吧,一樣的。你也可以去查別人怎么配置airbnb規(guī)則的,但是我不太喜歡。因?yàn)榘惭b了一堆插件,而且插件之間要配合的太多了,下次你要安裝,你還是不知道該安裝哪些,該如何去配置。

項(xiàng)目地址:https://github.com/rui-rui-an/vue3_add_eslint文章來源地址http://www.zghlxwxcb.cn/news/detail-852491.html

到了這里,關(guān)于Eslint:vue3項(xiàng)目添加eslint(standard規(guī)則)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vue3項(xiàng)目 - Eslint 配置代碼風(fēng)格

    vue3項(xiàng)目 - Eslint 配置代碼風(fēng)格

    總結(jié): Prettier? ?(代碼規(guī)范的插件,格式化 )--- 美觀 Eslint ? (規(guī)范、糾錯(cuò)、檢驗(yàn)錯(cuò)誤 )----- 糾錯(cuò) 首先, 禁用 Prettier 插件,安裝 ESLint 插件,配置保存時(shí)自動(dòng)修復(fù) 再 配置代碼風(fēng)格文件 .eslintrc.cjs (Prettier 配置 + ESLint 配置, 附配置代碼 ) 配置內(nèi)容 如, Prettier:?jiǎn)我?hào)、

    2024年02月04日
    瀏覽(21)
  • vue3項(xiàng)目+TypeScript前端項(xiàng)目—— vue3搭建項(xiàng)目+eslint+husky

    vue3項(xiàng)目+TypeScript前端項(xiàng)目—— vue3搭建項(xiàng)目+eslint+husky

    今天來帶大家從0開始搭建一個(gè)vue3版本的后臺(tái)管理系統(tǒng)。一個(gè)項(xiàng)目要有統(tǒng)一的規(guī)范,需要使用eslint+stylelint+prettier來對(duì)我們的代碼質(zhì)量做檢測(cè)和修復(fù),需要使用husky來做commit攔截,需要使用commitlint來統(tǒng)一提交規(guī)范,需要使用preinstall來統(tǒng)一包管理工具。 下面我們就用這一套規(guī)范

    2024年02月22日
    瀏覽(25)
  • 在 Vue3 項(xiàng)目中如何關(guān)閉 ESLint

    ESLint 是一個(gè)用于檢查 JavaScript 代碼質(zhì)量的工具,它可以幫助開發(fā)者遵循一致的編碼規(guī)范,并發(fā)現(xiàn)潛在的錯(cuò)誤和問題。然而,在某些情況下,我們可能希望關(guān)閉 ESLint,例如在一些小型項(xiàng)目中或者在特定的開發(fā)階段。本文將介紹如何在 Vue3 項(xiàng)目中關(guān)閉 ESLint。 第一步:找到配置文

    2024年02月08日
    瀏覽(33)
  • vue3+ts項(xiàng)目中eslint校驗(yàn)配置

    vue3+ts項(xiàng)目中eslint校驗(yàn)配置

    eslint中文官網(wǎng):ESLint - Pluggable JavaScript linter - ESLint中文 ESLint 是一個(gè)根據(jù)方案識(shí)別并報(bào)告 ECMAScript/JavaScript 代碼問題的工具,其目的是使代碼風(fēng)格更加一致并避免錯(cuò)誤,合理利用可以提高代碼質(zhì)量。 1.安裝eslint pnpm i eslint -D 2.生成eslint配置文件 npx eslint --init 3.安裝vue3代碼環(huán)境校

    2024年02月04日
    瀏覽(47)
  • ESLint如何在vue3項(xiàng)目中配置和使用

    目錄 問題描述: 配置: 注意: 問題描述: 在用vite創(chuàng)建vue3項(xiàng)目時(shí)已經(jīng)選擇了添加ESLint,創(chuàng)建完成后使用 pnpm install命令(或者npm i)安裝了項(xiàng)目依賴之后,ESLint在項(xiàng)目中需要怎樣配置和使用呢? 配置: 在項(xiàng)目根目錄中,創(chuàng)建一個(gè) .eslintrc.js 文件。這將是ESLint的配置文件。 打

    2024年02月09日
    瀏覽(23)
  • vue3項(xiàng)目中簡(jiǎn)單實(shí)用的ESLint + Prettier配置

    vue3項(xiàng)目中簡(jiǎn)單實(shí)用的ESLint + Prettier配置

    一個(gè)中大型項(xiàng)目,一般由團(tuán)隊(duì)成員共同開發(fā)維護(hù)。而團(tuán)隊(duì)的成員都有自己的編碼風(fēng)格,導(dǎo)致整個(gè)項(xiàng)目的代碼看上去很亂,很難維護(hù)。這時(shí)就需要我們的ESlint來進(jìn)行限制。 一、使用vue-cli創(chuàng)建vue3項(xiàng)目 執(zhí)行vue-cli的創(chuàng)建項(xiàng)目命令 在執(zhí)行以上命令的時(shí)候,會(huì)有一步選擇編碼規(guī)范,如

    2024年02月12日
    瀏覽(20)
  • vue3+Vite+TS項(xiàng)目,配置ESlint和Prettier

    vue3+Vite+TS項(xiàng)目,配置ESlint和Prettier

    實(shí)操過的有兩種方式 1.vue腳手架 2.vite(推薦,也是尤大大團(tuán)隊(duì)研發(fā)) 具體怎么新建一個(gè)vue3項(xiàng)目就不多講了,可以按照官方文檔來 創(chuàng)建后的文件目錄長(zhǎng)這樣 多提一句,vite也會(huì)隨著時(shí)間不斷迭代,后續(xù)項(xiàng)目結(jié)構(gòu)可能還會(huì)發(fā)生變化,當(dāng)前使用的vue版本 和vite版本也一并貼出來 下

    2024年04月15日
    瀏覽(42)
  • vue3+ts項(xiàng)目02-安裝eslint、prettier和sass

    vue3+ts項(xiàng)目02-安裝eslint、prettier和sass

    項(xiàng)目創(chuàng)建 生成配置文件 安裝其他插件 修改.eslintrc.cjs 添加.eslintignore https://prettier.io/ 添加.prettierrc.cjs 添加.prettierignore https://stylelint.io/ 配置.stylelintrc.cjs 配置忽略文件.stylelintignore package.json增加配置 執(zhí)行 yarn format 會(huì)自動(dòng)格式化css、js、html、json還有markdown代碼

    2024年02月06日
    瀏覽(20)
  • 基于【ESLint+JavaScript Standard Style】標(biāo)準(zhǔn)的VUE/JS/html風(fēng)格指南

    基于【ESLint+JavaScript Standard Style】標(biāo)準(zhǔn)的VUE/JS/html風(fēng)格指南

    本規(guī)范是適用于小仙男團(tuán)隊(duì)及前端團(tuán)隊(duì)所搭建的各種前端框架代碼的通用風(fēng)格規(guī)范指南; 使用時(shí),請(qǐng)遵循指南細(xì)則進(jìn)行代碼風(fēng)格約束,并在提交之前確保進(jìn)行代碼風(fēng)格的修正操作; 本規(guī)范參考WEB行業(yè)知名的JavaScript Standard Style 規(guī)范指南。并將在后續(xù)使用過程中,逐步進(jìn)行符合

    2023年04月13日
    瀏覽(27)
  • vite+vue3+ts+eslint+prettier+husky+lint-stated 項(xiàng)目搭建

    項(xiàng)目搭建 創(chuàng)建初始項(xiàng)目 Node.js 版本 14.18+,16+ npm create vite@latest my-vue-app --template vue-ts 添加eslint eslint 初始化 npm init @eslint/config eslint初始化腳本,按自己的要求選擇相應(yīng)的eslint 配置,以下是我選擇的配置項(xiàng) ? How would you like to use ESLint? · style ? What type of modules does your project

    2024年02月08日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包