Vite+TS+Vue開啟eslint和prettier規(guī)范及校驗(yàn)方式
前言
- 開發(fā)規(guī)范可以很好避免奇奇怪怪的問題
- 避免多人開發(fā)習(xí)慣不同的情況
- 避免提交代碼出現(xià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 文件來達(dá)到規(guī)范校驗(yàn)
.eslintrc.cjs文件配置開發(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)目的語法環(huán)境、擴(kuò)展和規(guī)則等信息,以便在編碼過程中進(jìn)行語法檢查和風(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 語句。
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'prettier/prettier': [
'warn',
{
singleQuote: true, // 使用單引號
semi: false, // 在語句的末尾打印分號
trailingComma: 'all', // 多行對象和數(shù)組的最后一個(gè)元素后面是否添加逗號(都添加)
printWidth: 80, // 超過 80 個(gè)字符時(shí)換行
tabWidth: 2, // 使用 2 個(gè)空格縮進(jìn)
}
]
},
overrides: [ //屬性定義了針對某些特定文件或目錄的覆蓋規(guī)則,如指定 mocha 測試相關(guān)的語法環(huán)境。
{
files: ['**/__tests__/*.{j,t}s?(x)', '**/tests/unit/**/*.spec.{j,t}s?(x)'],
env: {
mocha: true
}
}
]
}.prettierrc.js文件配置開發(fā)格式(配置同上package.json的prettier內(nèi)容,.eslintrc.cjs文件rules的’prettier/prettier’)
module.exports = {
singleQuote: true, // 使用單引號
semi: true, // 在語句的末尾打印分號
trailingComma: 'all', // 多行對象和數(shù)組的最后一個(gè)元素后面是否添加逗號(都添加)
printWidth: 80, // 超過 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)頁面切換左右滑動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了基于Vue實(shí)現(xiàn)頁面切換左右滑動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
在vue中使用image-webpack-loader實(shí)例
這篇文章主要介紹了在vue中使用image-webpack-loader實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
vue本地構(gòu)建熱更新卡頓的問題“75?advanced?module?optimization”完美解決方案
這篇文章主要介紹了vue本地構(gòu)建熱更新卡頓的問題“75?advanced?module?optimization”解決方案,每次熱更新都會(huì)卡在?"75?advanced?module?optimization"?的地方不動(dòng)了,如何解決這個(gè)問題呢,下面小編給大家?guī)砹私鉀Q方案,需要的朋友可以參考下2022-08-08
vue-video-player?播放m3u8視頻流的實(shí)現(xiàn)
本文主要介紹了vue-video-player?播放m3u8視頻流的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
vue 對象添加或刪除成員時(shí)無法實(shí)時(shí)更新的解決方法
這篇文章主要介紹了vue 對象添加或刪除成員時(shí)無法實(shí)時(shí)更新的解決方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-05-05
Vue組件數(shù)據(jù)傳遞與props校驗(yàn)方式
這篇文章主要介紹了Vue組件數(shù)據(jù)傳遞與props校驗(yàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08

