每次新建项目都要配一遍ESLint、Prettier、Husky?而且版本一更新,配置就不兼容?
我把2026年最新的Vite项目工程化配置整理成了一篇文章,从零到完成,直接复制就能用。
前置准备
- Node.js 20+
- pnpm(推荐,比npm/yarn更快更省空间)
# 安装pnpm
npm install -g pnpm
# 创建Vite项目
pnpm create vite my-project --template vue-ts
cd my-project
pnpm install
1. ESLint 配置
2024年ESLint 9.x 引入了flat config,2026年已经完全稳定。
pnpm add -D eslint @eslint/js typescript-eslint eslint-plugin-vue
创建 eslint.config.js:
import js from '@eslint/js'
import tseslint from 'typescript-eslint'
import pluginVue from 'eslint-plugin-vue'
export default [
js.configs.recommended,
...tseslint.configs.recommended,
...pluginVue.configs['flat/recommended'],
{
files: ['**/*.vue'],
languageOptions: {
parserOptions: { parser: tseslint.parser },
},
},
{
rules: {
'no-console': 'warn',
'no-debugger': 'warn',
'@typescript-eslint/no-explicit-any': 'warn',
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
'vue/multi-word-component-names': 'off',
},
},
{
ignores: ['dist/**', 'node_modules/**', '*.config.js'],
},
]
在 package.json 中加入脚本:
{
"scripts": {
"lint": "eslint . --fix"
}
}
2. Prettier 配置
pnpm add -D prettier eslint-config-prettier
创建 .prettierrc:
{
"semi": false,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "all",
"printWidth": 100,
"arrowParens": "avoid",
"endOfLine": "auto"
}
创建 .prettierignore:
dist
node_modules
pnpm-lock.yaml
在 eslint.config.js 最后加上 Prettier 兼容:
import prettierConfig from 'eslint-config-prettier'
export default [
// ... 上面的配置
prettierConfig, // 放在最后,关闭与Prettier冲突的ESLint规则
]
在 package.json 加脚本:
{
"scripts": {
"lint": "eslint . --fix",
"format": "prettier --write ."
}
}
3. Husky + lint-staged(提交前自动检查)
pnpm add -D husky lint-staged
pnpm exec husky init
编辑 .husky/pre-commit:
pnpm exec lint-staged
在 package.json 中添加 lint-staged 配置:
{
"lint-staged": {
"*.{js,ts,vue}": ["eslint --fix"],
"*.{js,ts,vue,css,md,json}": ["prettier --write"]
}
}
现在每次git commit前,会自动对暂存文件做ESLint修复和Prettier格式化。
4. commitlint(规范提交信息)
pnpm add -D @commitlint/cli @commitlint/config-conventional
创建 commitlint.config.js:
export default {
extends: ['@commitlint/config-conventional'],
}
添加commit-msg钩子:
echo "pnpm exec commitlint --edit \$1" > .husky/commit-msg
现在提交信息必须遵循规范格式:
# ✅ 正确
git commit -m "feat: 添加用户管理页面"
git commit -m "fix: 修复登录页面样式错乱"
git commit -m "docs: 更新README"
# ❌ 被拒绝
git commit -m "改了点东西"
git commit -m "update"
5. VS Code 配置(团队统一)
创建 .vscode/settings.json:
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"typescript.tsdk": "node_modules/typescript/lib"
}
创建 .vscode/extensions.json(推荐插件):
{
"recommendations": [
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"Vue.volar"
]
}
完整 package.json 脚本
{
"scripts": {
"dev": "vite",
"build": "vue-tsc && vite build",
"preview": "vite preview",
"lint": "eslint . --fix",
"format": "prettier --write .",
"prepare": "husky"
}
}
一键配置命令(懒人版)
不想一步步来?把上面所有命令合成一个:
pnpm add -D eslint @eslint/js typescript-eslint eslint-plugin-vue prettier eslint-config-prettier husky lint-staged @commitlint/cli @commitlint/config-conventional && pnpm exec husky init
然后把上面的配置文件复制进去就行。
全套配置从零到完成不超过10分钟。以后新建项目直接复制这套,效率拉满。
我是前端老兵AI,9年+前端工程师,专注前端实战+AI编程提效
📦 加微信lxxs1203,备注"掘金",领取《前端+AI编程实战干货包》
🎬 B站搜索:前端老兵AI,每周更新实操视频
📱 公众号搜索「前端老兵之AI」,持续更新深度技术文章