Vue 项目安装 @antfu/eslint-config 保姆级教程

本教程将指导你一步步在 Vue 项目中安装和配置 @antfu/eslint-config,实现代码规范化与自动格式化。

前置条件

确保你的 Node.js 版本满足要求:Node.js >= 23

若版本不符合,可使用 nvm 管理 Node.js 版本,方便一键切换。

安装步骤

1. 安装 VS Code ESLint 插件

在 VS Code 扩展市场中搜索并安装 ESLint 插件,用于实时检测代码规范问题。

2. 安装 @antfu/eslint-config

运行以下命令安装最新版本的 @antfu/eslint-config

bash 复制代码
pnpm dlx @antfu/eslint-config@latest

安装过程中会进入交互式配置界面:

  • 选择技术栈 :选择 Vue(按空格勾选)。

  • 自动格式化 :勾选"自动格式化"选项。如果小的项目使用 UnoCSS,可勾选 UnoCSS 以启用类名自动排序。

  • VS Code 配置 :勾选生成 settings.json,这会为当前项目创建专属的 VS Code 配置文件。
    注意@antfu/eslint-config 内置格式化功能,无需 Prettier,会自动禁用 Prettier 插件。

自定义配置

默认配置下,Vue 文件中的 <style> 块(CSS/LESS/SCSS)不会自动格式化。需要额外配置 eslint.config.mjs 文件以启用格式化支持。

配置示例

在项目根目录创建或修改 eslint.config.mjs

javascript 复制代码
import antfu from '@antfu/eslint-config'

export default antfu({
  formatters: {
    css: true, // 启用 CSS、LESS、SCSS 及 Vue <style> 块格式化
    html: true, // 启用 HTML 文件格式化
  },
  unocss: true, // 启用 UnoCSS 类名排序(如果使用 UnoCSS)
  vue: true,    // 启用 Vue 相关规则
}, {
  rules: {
    'antfu/if-newline': 'off', // 关闭 if 语句强制换行
    'no-async-promise-executor': 'off', // 允许 Promise 构造函数使用 async
    'perfectionist/sort-imports': [ // 配置导入排序
      'error',
      {
        customGroups: {
          type: {
            'vue-type': ['^vue$', '^vue-.+', '^@vue/.+'],
          },
          value: {
            vue: ['^vue$', '^vue-.+', '^@vue/.+'], // Vue 相关库
            components: ['^@/components/.+', '@/tmui/.+'], // 组件
            stores: ['^@/store/.+'], // 状态管理
            utils: ['^@/utils/.+'], // 工具函数
            constants: ['^@/constants/.+'], // 常量
            hooks: ['^@/hooks/.+'], // 自定义 hooks
            api: ['^@/service/.+'], // API 服务
          },
        },
        environment: 'node',
        groups: [
          // 类型导入
          ['external-type', 'builtin-type', 'type'],
          'vue-type',
          ['parent-type', 'sibling-type', 'index-type'],
          ['internal-type'],
          // 值导入
          'builtin',
          'vue',
          'external',
          'internal',
          // 内部模块
          'components',
          'stores',
          'utils',
          'constants',
          'hooks',
          'api',
          // 其他
          ['parent', 'sibling', 'index'],
          'side-effect',
          'side-effect-style',
          'style',
          'object',
          'unknown',
        ],
        internalPattern: ['^@/.+'], // 内部模块路径匹配
        newlinesBetween: 'always', // 导入组之间空行
        order: 'asc', // 升序排序
        type: 'natural', // 自然排序
      },
    ],
  },
})

配置说明

  • formatters.cssformatters.html:启用 CSS 和 HTML 文件(包括 Vue 的 <style> 块)的自动格式化。
  • unocss:启用 UnoCSS 类名排序(仅在使用 UnoCSS 时启用)。
  • vue:启用 Vue 特定规则。
  • rules:自定义规则,例如禁用 if 语句换行、允许 async Promise 构造函数、配置导入排序等。

完成安装

  1. 安装项目依赖:

    bash 复制代码
    pnpm install
  2. 重启 VS Code,确保配置生效。

批量修复 ESLint 问题

运行以下命令批量修复指定目录中的 ESLint 问题:

bash 复制代码
# 修复 src 目录
npx eslint --fix --ext .js,.ts,.vue src
# 修复 src/components 目录
npx eslint --fix --ext .js,.ts,.vue src/components

注意事项

  • Node.js 版本:确保使用 Node.js >= 23,否则可能出现兼容性问题。推荐使用 nvm 管理 Node.js 版本。
  • Prettier 禁用@antfu/eslint-config 内置格式化功能,无需 Prettier,安装后会自动禁用 Prettier 插件。
  • UnoCSS:仅在项目中使用 UnoCSS 时启用相关配置。
相关推荐
万少2 小时前
记 HarmonyOS 开发中的一个小事件 怒提华为工单
前端·harmonyos
未来之窗软件服务2 小时前
万象EXCEL开发(六)excel单元格运算逻辑 ——东方仙盟金丹期
前端·excel·仙盟创梦ide·东方仙盟·万象excel
mldong2 小时前
保姆级教程!手把手教你搭建FastAPI + Vue3前后端分离项目
vue.js·python·全栈
Mintopia2 小时前
🚀 Cesium-Kit:10 秒为你的 Cesium 项目添加动态光效标记
前端·javascript·cesium
Mintopia2 小时前
🌩️ 云边协同架构下的 WebAI 动态资源调度技术
前端·javascript·aigc
Olrookie2 小时前
若依前后端分离版学习笔记(十六)——scoped、路由跳转
前端·笔记
qaqxiaolei2 小时前
高效办公利器:前端实现表格导出excel格式 + 自定义水印的完整方案
前端·javascript
叫我詹躲躲3 小时前
为什么Bun.js能在3秒内启动一个完整的Web应用?
前端·javascript·bun
Olrookie3 小时前
若依前后端分离版学习笔记(十七)——ruoyi开发规范&流程,请求流程,依赖引入,组件注册&通信
前端·笔记