代码检查 && 格式化
使用 ESLint + Prettier 实现代码检查和格式化
VSCode 中安装插件
- 插件中安装 ESLint、Prettier 官方提供的插件
- 编辑器指定 Prettier 格式化配置:json
// 指定默认格式化 "editor.defaultFormatter": "esbenp.prettier-vscode", // 保存时自动格式化 "editor.formatOnSave": true, // 指定文件格式化 "[vue]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[typescript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[scss]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
项目中安装
sh
# prettier
pnpm i prettier -D
# eslint
pnpm i eslint -D初始化 ESLint:
sh
npx eslint --init根据提示,会自动安装相关依赖以及生成配置文件:

自动生成的 eslint.config.js 配置如下:
js
import js from '@eslint/js'
import globals from 'globals'
import tseslint from 'typescript-eslint'
import pluginVue from 'eslint-plugin-vue'
import { defineConfig } from 'eslint/config'
import eslintConfigPrettier from 'eslint-config-prettier'
export default defineConfig([
{
files: ['**/*.{js,mjs,cjs,ts,mts,cts,vue}'],
plugins: { js },
extends: ['js/recommended'],
languageOptions: { globals: globals.browser }
},
tseslint.configs.recommended,
pluginVue.configs['flat/essential'],
{
files: ['**/*.vue'],
languageOptions: { parserOptions: { parser: tseslint.parser } }
}
])ESLint 配置
忽略文件
新版本支持在 defineConfig 函数中直接定义 ignores:
js
//省略导入
export default defineConfig([
// 省略前边的配置
{
ignores: [
'node_modules',
'*.md',
'dist',
'.vscode',
'.idea',
'public',
'.gitignore'
]
}
])与 Prettier 格式化冲突
sh
pnpm install -D eslint-config-prettiereslint.config.js 文件新增配置:
js
import js from '@eslint/js'
import globals from 'globals'
import tseslint from 'typescript-eslint'
import pluginVue from 'eslint-plugin-vue'
import { defineConfig } from 'eslint/config'
import eslintConfigPrettier from 'eslint-config-prettier'
export default defineConfig([
// 省略前边的配置
eslintConfigPrettier
])添加脚本命令
在 package.json 中添加命令:
json
{
"scripts": {
"dev": "vite",
"build": "vue-tsc -b && vite build",
"preview": "vite preview",
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts",
"format": "prettier --write ."
}
}