Vite需搭配ESLint 9.x+Prettier 3.x+flat配置实现规范检查与格式化:用eslint.config.js替代.eslintrc.*,ESLint专注质量、Prettier专责格式,EditorConfig兜底统一编辑器基础设置,husky+lint-staged保障提交前自动校验。

直接上手配置,别绕弯子。Vite 本身不带代码检查和格式化能力,它只负责快打包、热更新;ESLint 和 Prettier 才是管规范的核心工具。当前(2026年)主流组合是 ESLint 9.x + Prettier 3.x + flat config 配置方式,旧的 .eslintrc.js 写法已不兼容,硬套会报错。
用 eslint.config.js 替代 .eslintrc.js
ESLint 9 强制使用扁平化配置,所有规则写在一个数组里,顺序即优先级:
- 新建
eslint.config.js,不要留.eslintrc.*文件,否则冲突 - 基础配置可复用官方推荐:
import js from '@eslint/js',它已内置eslint:recommended - Vue 项目加
import vue from 'eslint-plugin-vue',并显式启用vue/vue3-essential规则集 - TypeScript 项目必须配
@typescript-eslint/eslint-plugin和@typescript-eslint/parser,否则无法解析.ts或.vue中的 TS 语法
Prettier 不要让 ESLint 管格式
ESLint 9 已移除大部分格式类规则,Prettier 应专责格式化,ESLint 专注质量检查。二者协同关键在隔离职责:
- 安装
prettier和eslint-config-prettier,后者用于关闭 ESLint 中所有与 Prettier 冲突的规则 - 不要装
eslint-plugin-prettier并设为error—— 这会让格式问题变成构建失败,违背“开发阶段友好”原则 - 推荐做法:保存时 VS Code 自动用 Prettier 格式化;提交前用
lint-staged做一次强制校验,但不阻断编辑流程
EditorConfig 是跨编辑器底线保障
VS Code、WebStorm、Nova 等编辑器行为不一致?靠 .editorconfig 统一基础编码习惯:
- 根目录建
.editorconfig,内容简洁明确,例如缩进用 2 空格、LF 换行、末尾空行、去除行尾空格 - VS Code 需装 EditorConfig 插件才生效;WebStorm 默认支持,无需额外操作
- 它不替代 ESLint/Prettier,而是兜底——哪怕某人没装插件,打开文件也不会突然变成 4 空格或 CRLF
Git 提交前自动校验(可选但强烈建议)
靠人自觉不现实,把检查塞进提交流程最省力:
- 用
husky初始化 Git hooks,再配lint-staged只检查暂存区文件 - 命令示例:
npx husky add .husky/pre-commit "npx lint-staged" -
lint-staged配置中,对*.{js,ts,vue}跑eslint --fix,对*.{js,ts,jsx,tsx,css,scss,vue}跑prettier --write - 这样既保证提交代码合规,又不会因全量扫描拖慢日常开发


















