vue3,TypeScript---eslint配置

66 阅读3分钟

一、核心依赖包(分基础和 Vue/TS 适配)

在 Vue3 + TS 项目中,ESLint 核心依赖分为基础包适配 Vue/TS 的插件包,以下是完整的依赖列表及作用:

包名作用
eslintESLint 核心库,提供代码检查的基础能力
@typescript-eslint/eslint-plugin为 TypeScript 提供 ESLint 规则的插件
@typescript-eslint/parserESLint 的 TypeScript 解析器,让 ESLint 能识别 TS 语法
eslint-plugin-vue专为 Vue 设计的 ESLint 插件,提供 Vue 代码的检查规则(支持 Vue3)
vue-eslint-parser解析 Vue SFC(单文件组件)的解析器,让 ESLint 能识别 Vue 模板和脚本
@vue/eslint-config-typescriptVue 官方提供的 TS 适配配置,简化 Vue+TS 的 ESLint 配置
eslint-config-prettier(可选)禁用 ESLint 中与 Prettier 冲突的规则(如果同时用 Prettier)

二、安装命令

1. 基础安装(仅 ESLint + Vue3 + TS)

bash

运行

# npm 安装
npm install eslint @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-plugin-vue vue-eslint-parser @vue/eslint-config-typescript --save-dev

# yarn 安装
yarn add eslint @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-plugin-vue vue-eslint-parser @vue/eslint-config-typescript -D

# pnpm 安装(推荐,速度更快)
pnpm add eslint @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-plugin-vue vue-eslint-parser @vue/eslint-config-typescript -D

三、核心配置(.eslintrc.js)

安装完成后,需要在项目根目录创建 .eslintrc.js 文件,配置适配 Vue3 + TS 的规则:

javascript

运行

module.exports = {
  // 环境:指定代码运行的环境,启用对应环境的全局变量
  env: {
    browser: true, // 浏览器环境
    es2021: true,  // ES2021 语法
    node: true     // Node.js 环境
  },
  // 扩展配置:继承已有的规则集,减少重复配置
  extends: [
    'eslint:recommended', // ESLint 官方推荐规则
    'plugin:vue/vue3-essential', // Vue3 核心规则(必选)
    'plugin:@typescript-eslint/recommended', // TS 推荐规则
    '@vue/eslint-config-typescript', // Vue+TS 适配配置
    'eslint-config-prettier' // 禁用与 Prettier 冲突的规则(如果装了 Prettier)
  ],
  // 解析器:指定解析代码的解析器
  parser: 'vue-eslint-parser', // 解析 Vue SFC
  // 解析器选项:传给解析器的配置
  parserOptions: {
    ecmaVersion: 'latest', // 支持最新 ES 版本
    parser: '@typescript-eslint/parser', // 解析 TS 代码的子解析器
    sourceType: 'module' // 模块化代码(ES Module)
  },
  // 插件:启用安装的 ESLint 插件
  plugins: [
    'vue', // Vue 插件
    '@typescript-eslint' // TS 插件
  ],
  // 自定义规则:覆盖或新增规则,优先级最高
  rules: {
    // 示例:关闭 TS 的 "any 类型禁止" 规则(根据项目需求调整)
    '@typescript-eslint/no-explicit-any': 'off',
    // 关闭 Vue 的 "组件名多单词" 规则(小型项目可临时关闭)
    'vue/multi-word-component-names': 'off'
  }
}

四、补充配置(可选)

  1. 忽略文件(.eslintignore) :指定 ESLint 不检查的文件 / 目录

plaintext

node_modules/
dist/
*.d.ts

五、自动化修复

1.安装插件

image.png

2.添加自动配置项

image.png

image.png

添加

image.png

  "editor.codeActionsOnSave":{
    "source.fixAll.eslint": "explicit"
  },