跳到主要内容

eslint

下面我给你一套 适用于 Electron + Vite + Vue3 + TypeScript 项目最新 ESLint 完整配置(2025 最优解),直接可用、零踩坑。

这套配置包含:

  • Vue3 + TS 最佳实践
  • Vite 支持
  • Electron 支持
  • Prettier 自动格式化
  • 兼容 Husky + lint-staged

你只需要 复制这些命令和文件 就能用。


✅ 1. 安装 ESLint + Prettier 必备依赖

使用 pnpm(推荐)

pnpm add -D eslint @eslint/js \
typescript \
@typescript-eslint/parser @typescript-eslint/eslint-plugin \
eslint-plugin-vue \
eslint-plugin-prettier eslint-config-prettier \
prettier \
eslint-plugin-import \
eslint-plugin-node \
eslint-plugin-promise

如果你的项目是 Electron,还建议:

pnpm add -D eslint-plugin-n

✅ 2. 创建 ESLint 配置文件(2025 最新 flat config)

新建:eslint.config.js

Flat Config 是 ESLint 9+ 官方推荐格式(取代 .eslintrc

复制下面完整内容:

import js from "@eslint/js";
import tseslint from "@typescript-eslint/eslint-plugin";
import tsparser from "@typescript-eslint/parser";
import vue from "eslint-plugin-vue";
import prettier from "eslint-plugin-prettier";

export default [
js.configs.recommended,
{
files: ["src/**/*.{js,ts,vue}"],
ignores: ["dist", "node_modules"],
languageOptions: {
parser: tsparser,
ecmaVersion: 2022,
sourceType: "module",
},
plugins: {
"@typescript-eslint": tseslint,
vue,
prettier,
},
extends: [
"plugin:vue/vue3-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended",
],
rules: {
// 你的项目应该常用的规则
"prettier/prettier": "error",
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": ["warn"],
"vue/multi-word-component-names": "off",
"vue/no-mutating-props": "off",
"@typescript-eslint/no-explicit-any": "off",
},
},
];

✅ 3. 创建 Prettier 配置

新建:prettier.config.cjs

module.exports = {
semi: false,
singleQuote: true,
arrowParens: "avoid",
trailingComma: "none",
printWidth: 100,
tabWidth: 2,
};

✅ 4.(可选)创建 .prettierignore

dist
node_modules
*.log

✅ 5. 在 package.json 添加脚本

{
"scripts": {
"lint": "eslint --max-warnings=0 .",
"format": "prettier --write ."
}
}

✅ 6. 配置 lint-staged(如果你用 Husky)

package.json 添加:

{
"lint-staged": {
"*.{js,ts,vue}": "pnpm exec eslint --fix",
"*.{json,md,yml,yaml}": "pnpm exec prettier --write"
}
}

🚀 7. 使用 Husky 的 pre-commit

.husky/pre-commit

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

pnpm exec lint-staged

✨ 至此,你的项目已经有了:

  • ESLint(TS + Vue3 最佳)
  • Prettier(自动格式化)
  • lint-staged(只 lint 改动的文件)
  • Husky(提交前强制 lint)

这是 2025 年最稳、兼容性最强 的前端工程质量方案。


📌 如果你愿意,我还可以帮你:

✔ 自动生成 Electron 主进程专用 ESLint 配置(带 node/electron rules) ✔ 自动生成 Renderer 与 Main 目录分离校验规则 ✔ 如果你贴出你的项目结构,我可以为你生成一套 完全定制化 lint 方案

需要继续优化吗?