Vite+TS+Vue開(kāi)啟eslint和prettier規(guī)范及校驗(yàn)方式
前言
- 開(kāi)發(fā)規(guī)范可以很好避免奇奇怪怪的問(wèn)題
- 避免多人開(kāi)發(fā)習(xí)慣不同的情況
- 避免提交代碼出現(xiàn)的各種合并問(wèn)題
- 幫助快速找到指定位置的bug
安裝依賴
需要先安裝以下依賴
vite-plugin-eslint @vue/eslint-config-prettier @vue/eslint-config-typescript @vue/cli-plugin-eslint eslint eslint-config-prettier eslint-plugin-prettier eslint-plugin-vue prettier vite-plugin-eslint
配置使用
vite.config.ts
文件引入插件使其在構(gòu)建和編譯時(shí)生效
... import eslintPlugin from 'vite-plugin-eslint' import { defineConfig } from 'vite' export default defineConfig(({ command, mode }) => { return { ... plugins: [ eslintPlugin({ include: ['src/**/*.ts', 'src/**/*.js', 'src/**/*.vue', 'src/*.ts', 'src/*.js', 'src/*.vue'] }), ] ... } })
并在package.json
文件配置,也可根據(jù)個(gè)人實(shí)際習(xí)慣優(yōu)化配置
{ "eslintConfig": { "extends": [ "plugin:vue/essential", "eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier" ], "plugins": [ "@typescript-eslint", "prettier" ], "parserOptions": { "parser": "@typescript-eslint/parser" }, "rules": { "no-console": "off", "no-debugger": "off", "prettier/prettier": "error" } }, "prettier": { "singleQuote": true, "semi": true, "trailingComma": "all", "printWidth": 80, "tabWidth": 2 } }
也可配置 .eslintrc.cjs
文件來(lái)達(dá)到規(guī)范校驗(yàn)
.eslintrc.cjs
文件配置開(kāi)發(fā)規(guī)范(配置同上package.json
的eslintConfig
內(nèi)容)
// /* eslint-env node */ // require('@rushstack/eslint-patch/modern-module-resolution') // module.exports = { // root: true, // 'extends': [ // 'plugin:vue/vue3-essential', // 'eslint:recommended', // '@vue/eslint-config-typescript', // '@vue/eslint-config-prettier' // ], // parserOptions: { // ecmaVersion: 'latest', // parser: '@typescript-eslint/parser', // }, // } // javascript 代碼風(fēng)格檢查工具 eslint 配置文件。它定義了項(xiàng)目的語(yǔ)法環(huán)境、擴(kuò)展和規(guī)則等信息,以便在編碼過(guò)程中進(jìn)行語(yǔ)法檢查和風(fēng)格統(tǒng)一 module.exports = { root: true,//root: true 表示這是 eslint 的根配置文件。 env: { //env: { node: true } 聲明該代碼運(yùn)行于 node.js 環(huán)境。 node: false }, extends: [ //extends 屬性包含了一些預(yù)定義的規(guī)則集合,用于保證代碼的質(zhì)量和風(fēng)格一致性。 'plugin:vue/vue3-essential',// 使 eslint 支持 vue 3 模板。 'eslint:recommended', //啟用 eslint 推薦的規(guī)則。 '@vue/typescript/recommended',//添加 typescript 相關(guān)的推薦規(guī)則集。 '@vue/prettier', //是為了與 prettier 集成,保證代碼格式的一致性。 // '@vue/prettier/@typescript-eslint' //是為了與 prettier 集成,保證代碼格式的一致性。 ], parserOptions: { //屬性聲明了使用的 ecmascript 版本。 ecmaVersion: 2020 }, rules: { //屬性定義了一些自定義的規(guī)則,如不允許在生產(chǎn)環(huán)境下使用 console 和 debugger 語(yǔ)句。 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 'prettier/prettier': [ 'warn', { singleQuote: true, // 使用單引號(hào) semi: false, // 在語(yǔ)句的末尾打印分號(hào) trailingComma: 'all', // 多行對(duì)象和數(shù)組的最后一個(gè)元素后面是否添加逗號(hào)(都添加) printWidth: 80, // 超過(guò) 80 個(gè)字符時(shí)換行 tabWidth: 2, // 使用 2 個(gè)空格縮進(jìn) } ] }, overrides: [ //屬性定義了針對(duì)某些特定文件或目錄的覆蓋規(guī)則,如指定 mocha 測(cè)試相關(guān)的語(yǔ)法環(huán)境。 { files: ['**/__tests__/*.{j,t}s?(x)', '**/tests/unit/**/*.spec.{j,t}s?(x)'], env: { mocha: true } } ] }
.prettierrc.js
文件配置開(kāi)發(fā)格式(配置同上package.json
的prettier
內(nèi)容,.eslintrc.cjs
文件rules
的’prettier/prettier’)
module.exports = { singleQuote: true, // 使用單引號(hào) semi: true, // 在語(yǔ)句的末尾打印分號(hào) trailingComma: 'all', // 多行對(duì)象和數(shù)組的最后一個(gè)元素后面是否添加逗號(hào)(都添加) printWidth: 80, // 超過(guò) 80 個(gè)字符時(shí)換行 tabWidth: 2, // 使用 2 個(gè)空格縮進(jìn) };
配置了 .eslintrc.cjs
文件后可以看到更多的規(guī)范需要處理,
Vue編譯處理: warning Delete
? prettier/prettier
提示
git 自動(dòng)把換行符LF(linefeed character)
轉(zhuǎn)換成回車符CRLF(carriage-return character)
點(diǎn)擊下圖右下角的CRLF
修改為LF
即可
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于Vue實(shí)現(xiàn)頁(yè)面切換左右滑動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了基于Vue實(shí)現(xiàn)頁(yè)面切換左右滑動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08在vue中使用image-webpack-loader實(shí)例
這篇文章主要介紹了在vue中使用image-webpack-loader實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11vue本地構(gòu)建熱更新卡頓的問(wèn)題“75?advanced?module?optimization”完美解決方案
這篇文章主要介紹了vue本地構(gòu)建熱更新卡頓的問(wèn)題“75?advanced?module?optimization”解決方案,每次熱更新都會(huì)卡在?"75?advanced?module?optimization"?的地方不動(dòng)了,如何解決這個(gè)問(wèn)題呢,下面小編給大家?guī)?lái)了解決方案,需要的朋友可以參考下2022-08-08vue-video-player?播放m3u8視頻流的實(shí)現(xiàn)
本文主要介紹了vue-video-player?播放m3u8視頻流的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04vue 對(duì)象添加或刪除成員時(shí)無(wú)法實(shí)時(shí)更新的解決方法
這篇文章主要介紹了vue 對(duì)象添加或刪除成員時(shí)無(wú)法實(shí)時(shí)更新的解決方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05Vue組件數(shù)據(jù)傳遞與props校驗(yàn)方式
這篇文章主要介紹了Vue組件數(shù)據(jù)傳遞與props校驗(yàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08