前端工程化实战:Vite + ESLint + Prettier + Husky 从零配置(2026最新版)

每次新建项目都要配一遍ESLint、Prettier、Husky?而且版本一更新,配置就不兼容?

我把2026年最新的Vite项目工程化配置整理成了一篇文章,从零到完成,直接复制就能用。

前置准备

  • Node.js 20+
  • pnpm(推荐,比npm/yarn更快更省空间)
bash 复制代码
# 安装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年已经完全稳定。

bash 复制代码
pnpm add -D eslint @eslint/js typescript-eslint eslint-plugin-vue

创建 eslint.config.js

javascript 复制代码
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 中加入脚本:

json 复制代码
{
  "scripts": {
    "lint": "eslint . --fix"
  }
}

2. Prettier 配置

bash 复制代码
pnpm add -D prettier eslint-config-prettier

创建 .prettierrc

json 复制代码
{
  "semi": false,
  "singleQuote": true,
  "tabWidth": 2,
  "trailingComma": "all",
  "printWidth": 100,
  "arrowParens": "avoid",
  "endOfLine": "auto"
}

创建 .prettierignore

csharp 复制代码
dist
node_modules
pnpm-lock.yaml

eslint.config.js 最后加上 Prettier 兼容:

javascript 复制代码
import prettierConfig from 'eslint-config-prettier'

export default [
  // ... 上面的配置
  prettierConfig,  // 放在最后,关闭与Prettier冲突的ESLint规则
]

package.json 加脚本:

json 复制代码
{
  "scripts": {
    "lint": "eslint . --fix",
    "format": "prettier --write ."
  }
}

3. Husky + lint-staged(提交前自动检查)

bash 复制代码
pnpm add -D husky lint-staged
pnpm exec husky init

编辑 .husky/pre-commit

bash 复制代码
pnpm exec lint-staged

package.json 中添加 lint-staged 配置:

json 复制代码
{
  "lint-staged": {
    "*.{js,ts,vue}": ["eslint --fix"],
    "*.{js,ts,vue,css,md,json}": ["prettier --write"]
  }
}

现在每次git commit前,会自动对暂存文件做ESLint修复和Prettier格式化。

4. commitlint(规范提交信息)

bash 复制代码
pnpm add -D @commitlint/cli @commitlint/config-conventional

创建 commitlint.config.js

javascript 复制代码
export default {
  extends: ['@commitlint/config-conventional'],
}

添加commit-msg钩子:

bash 复制代码
echo "pnpm exec commitlint --edit \$1" > .husky/commit-msg

现在提交信息必须遵循规范格式:

bash 复制代码
# ✅ 正确
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

json 复制代码
{
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit"
  },
  "typescript.tsdk": "node_modules/typescript/lib"
}

创建 .vscode/extensions.json(推荐插件):

json 复制代码
{
  "recommendations": [
    "dbaeumer.vscode-eslint",
    "esbenp.prettier-vscode",
    "Vue.volar"
  ]
}

完整 package.json 脚本

json 复制代码
{
  "scripts": {
    "dev": "vite",
    "build": "vue-tsc && vite build",
    "preview": "vite preview",
    "lint": "eslint . --fix",
    "format": "prettier --write .",
    "prepare": "husky"
  }
}

一键配置命令(懒人版)

不想一步步来?把上面所有命令合成一个:

bash 复制代码
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」,持续更新深度技术文章

相关推荐
qq_589666057 小时前
TypeScript 完整入门教程
前端·javascript·typescript
用户0595401744611 小时前
LLM对话记忆测试踩坑实录:手工回归30分钟,自动化后2分钟发现3个隐藏Bug
前端·css
Ashley的成长之路12 小时前
前端性能优化实战手册·第2篇:资源加载策略全解
前端·性能优化·资源加载·http/3·性能优化实战·资源加载优化
浅水壁虎12 小时前
vue基础(第二章 )
前端·javascript·vue.js
界面开发小八哥12 小时前
界面控件DevExtreme v26.1新版亮点——支持Angular 22
前端·javascript·angular.js·devexpress·ui开发·devextreme
Getflare12 小时前
前端 + UI 设计 + AI:这不是三个工种,是一个新三角能力模型(附自检清单)
前端·人工智能·ui
oil欧哟12 小时前
我做了一个 Vibe Coding 术语学习站:VibeHub
前端·ai·agent·独立开发·vibe coding
审小匠OpenCPAi13 小时前
银行流水核查怎么自动化?单边匹配、双向勾稽与图聚类异常检测的工程对比
java·前端·人工智能·python·审计
Revolution6113 小时前
一个公共表格组件,是怎么一步步失控的
前端·前端工程化