news 2026/7/2 2:37:22

从0开始为Vue3+TS+Vite项目配置ESLint+Prettier

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从0开始为Vue3+TS+Vite项目配置ESLint+Prettier

初始化项目

使用cli命令初始化一个Vue3+TS+Vite项目:

# npm
npm create vite@latest
# yarn
yarn create vite
# pnpm
pnpm create vite

注:后续演示使用pnpm包管理器。

按下图选择配置:

配置ESLint

1、安装ESLint

执行cli命令安装和初始化ESLint:

# npm
npx eslint --init
# yarn
yarn dlx eslint --init
# pnpm
pnpx eslint --init

执行命令后,会询问详细配置信息,根据实际需要进行配置:

  • What do you want to lint? 你想检查什么文件?

    选择JavaScript

  • How would you like to use ESLint? 你希望 ESLint 做什么?

    选择To check syntax and find problems,语法+潜在bug检查

  • What type of modules does your project use? 你的项目用什么模块化?

    选择JavaScript modules (import/export),使用ES模块

  • Which framework does your project use? 你的项目用什么框架?

    选择Vue.js

  • Does your project use TypeScript? 你的项目用TypeScript吗?

    选择Yes

  • Where does your code run? 你的代码运行在哪里?

    空格选择BrowserNode,浏览器 + Node 环境都支持

  • Which language do you want your configuration file be written in? 你的 ESLint 配置文件想用什么语言写?

    选择TypeScript

  • Jiti is required for Node.js <24.3.0 to read TypeScript configuration files. 低版本 Node 不能直接读 TS 格式的 ESLint 配置,需要安装一个工具:jiti

    Would you like to add Jiti as a devDependency? 你要安装 jiti 吗?

    选择Yes

  • The config requires following dependencies 你的配置需要这些依赖

    eslint, @eslint/js, globals, typescript-eslint, eslint-plugin-vue, jiti

    Would you like to install them now? 现在安装吗?

    选择Yes

  • Which package manager do you want to use? 用什么包管理器?

    选择pnpm

  • 最终配置如下:

2、eslint.config.ts 配置文件

安装完依赖后,项目根目录会出现eslint.config.ts配置文件。

  • 可以在选项中增加rules属性,添加自定义格式规则。
  • 不过后面使用Prettier的话,这里就不用配置了。
  • 这里为了演示,添加规则semi:强制语句末尾添加分号,否则警告。
// 导入 ESLint 官方的 JavaScript 核心规则
import js from "@eslint/js";
// 导入全局变量定义(浏览器/Node.js 内置变量)
import globals from "globals";
// 导入 TypeScript ESLint 插件(支持检查 TS 代码)
import tseslint from "typescript-eslint";
// 导入 Vue ESLint 插件(支持检查 .vue 文件)
import pluginVue from "eslint-plugin-vue";
// ESLint 9 扁平配置的工具函数(类型提示+规范配置格式)
import { defineConfig } from "eslint/config";
export default defineConfig([
{
// 匹配检查的文件:JS、TS、Vue 全部文件
files: ["**/*.{js,mjs,cjs,ts,mts,cts,vue}"],
// 启用 ESLint 官方 JS 插件
plugins: { js },
// 继承 ESLint 官方推荐的 JS 规则(基础语法检查)
extends: ["js/recommended"],
// 全局变量配置:同时支持浏览器 + Node.js 全局变量
// 比如 window、document、process、require 不会报未定义
languageOptions: { globals: { ...globals.browser, ...globals.node } },
// 可以在这里增加rules属性,添加自定义格式规则,使用Prettier的话,这里就不用配置
rules: {
semi: ["warn", "always"], // 必须在语句末尾加分号,否则警告
},
},
// 继承 TypeScript-ESLint 官方推荐规则
tseslint.configs.recommended,
// 继承 Vue 官方核心必备规则(扁平配置专用)
pluginVue.configs["flat/essential"],
{
// 只对 .vue 文件生效
files: ["**/*.vue"],
// 让 Vue 文件中的 <script lang="ts"> 支持 TypeScript 解析
languageOptions: { parserOptions: { parser: tseslint.parser } },
},
]);

3、package.json 文件增加命令

package.jsonscripts中,增加两个脚本命令:

"lint": "eslint",
"lint:fix": "eslint --fix"
  • "lint": "eslint":对整个项目进行ESLint检查,不修改代码。
  • "lint:fix": "eslint --fix":扫描代码,自动修复所有 ESLint 能自动修复的问题

到这里,已经可以使用命令行对代码进行代码质量检查、自动修复代码:

# 代码质量检查
pnpm lint
# 自动修复代码
pnpm lint:fix

配置Prettier

1、安装依赖

安装3个开发依赖:prettiereslint-config-prettiereslint-plugin-prettier

pnpm add prettier eslint-config-prettier eslint-plugin-prettier -D
  • prettier:核心代码格式化工具,自动格式化代码,统一代码风格。
  • eslint-config-prettier:关闭 ESLint 与 Prettier 冲突的规则。
  • eslint-plugin-prettier:把 Prettier 变成 ESLint 的一条规则,让 Prettier 的格式化能力集成到 ESLint 里。

2、修改 eslint.config.ts 文件

引入eslint-config-prettiereslint-plugin-prettier两个插件。

// ......
// 导入 Prettier 的 ESLint 配置(关闭与 Prettier 冲突的规则)
import eslintConfigPrettier from "eslint-config-prettier/flat";
// 导入 Prettier 的 ESLint 插件(将 Prettier 作为 ESLint 规则运行,显示格式问题)
import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended";
export default defineConfig([
// ......,
// 必须放在其他规则后面!
eslintConfigPrettier,
eslintPluginPrettierRecommended,
]);

注意:必须放在所有其他规则的最后面,因为后面的配置会覆盖前面的配置。

3、配置 .prettierrc 文件

在根目录新建.prettierrc文件或者终端执行命令:

node --eval "fs.writeFileSync('.prettierrc','{}\n')"

.prettierrc文件中进行代码风格规则配置,比如

{
"singleQuote": true,
"tabWidth": 2,
"semi": false
}

配置后,就能:

  • 修复语法错误(ESLint)
  • 修复格式错误(Prettier)

4、使用

现在,你可以使用ESLint,对代码进行格式和语法的检查与修复。

# 代码质量检查
pnpm lint
# 自动修复代码
pnpm lint:fix

VSCODE插件

推荐安装ESLint、Prettier。

ESLint 插件

读取项目里的eslint配置文件,实时:

  • 标红 / 波浪线提示代码语法、规范、格式错误
  • 保存时自动执行eslint --fix修复代码
  • 识别你项目安装的eslint依赖,走项目本地配置

Prettier 插件

读取项目 .prettierrc,单纯做代码格式化:引号、分号、缩进、换行等。

VSCODE配置保存自动格式化代码

打开VSCODE设置面板,搜索format

  • Format On Save:勾选,保存时自动格式化代码
  • Default Formatter:选择Prettier - Code formatter

这样每次保存代码后,VSCODE都会根据Prettier规则自动格式化代码。

.prettierrc 推荐配置

{
"printWidth": 120,
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": true,
"quoteProps": "as-needed",
"jsxSingleQuote": false,
"trailingComma": "es5",
"bracketSpacing": true,
"bracketSameLine": false,
"jsxBracketSameLine": false,
"arrowParens": "always",
"requirePragma": false,
"insertPragma": false,
"proseWrap": "preserve",
"htmlWhitespaceSensitivity": "css",
"vueIndentScriptAndStyle": true,
"endOfLine": "lf"
}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/2 2:36:40

AI协作模式匹配与风险规避实践指南

1. AI协作的本质&#xff1a;能力与局限的辩证关系在2025年的今天&#xff0c;AI已经深度渗透到各行各业的工作流程中。根据Google内部数据显示&#xff0c;使用AI工具的开发者工作效率平均提升55.8%&#xff0c;微软和埃森哲的研究也证实&#xff0c;采用GitHub Copilot的开发…

作者头像 李华
网站建设 2026/7/2 2:32:58

Skill 和 Sub-Agent 到底有什么区别?一个细节看懂

「Regnexe 实战系列」第 2 篇&#xff08;共 10 篇&#xff09;&#xff0c;对应仓库 ExampleReadme02SkillTest。上一篇&#xff1a;01. withTool 多工具入门。 一个让人纠结的设计问题 做多 Agent 系统的时候&#xff0c;几乎所有人都会卡在同一个问题上&#xff1a; “这个…

作者头像 李华
网站建设 2026/7/2 2:31:32

TDD在Unity3D游戏项目开发中的实践

关于TDD测试驱动开发的文章已经有很多了&#xff0c;但是在游戏开发尤其是使用Unity3D开发游戏时&#xff0c;却听不到特别多关于TDD的声音。那么本文就来简单聊一聊TDD如何在U3D项目中使用以及如何使用U3D 5.3.X之后版本已经集成的单元测试模块Editor Test Runner。 0x01 你好…

作者头像 李华
网站建设 2026/7/2 2:30:39

故事续写生成器 - 创意故事无限可能

故事续写生成器 - 创意故事无限可能一、引言&#xff1a;想象力的翅膀 故事是人类文明的瑰宝&#xff0c;是想象力的结晶。从古老的神话传说到现代的科幻小说&#xff0c;故事一直陪伴着人类的成长。然而&#xff0c;创作一个完整的故事并非易事&#xff0c;许多人都有过"…

作者头像 李华
网站建设 2026/7/2 2:30:28

RK3568平台开发系列讲解(调试篇)procfs、sysfs、debugfs 用法简介

🚀返回专栏总目录 文章目录 概述 一、三者对比总览 1.1 定位与区别 1.2 挂载方式 1.3 官方文档 二、debugfs — 为调试而生 2.1 特点 2.2 核心 API 2.3 完整示例 2.4 创建多级目录 三、procfs — 历史最悠久 3.1 特点 3.2 核心 API 3.3 完整示例 3.4 创建多级目录 四、sysfs …

作者头像 李华
网站建设 2026/7/2 2:30:14

智能合约开发中的威胁建模:代码生成前的安全基线构建

智能合约开发中的威胁建模&#xff1a;代码生成前的安全基线构建 一、合约开发中威胁模型优先于代码生成 智能合约开发的关键环节&#xff0c;并非代码编写本身&#xff0c;而是前置的风险建模。合约开发绝不能只追求生成速度——智能合约一旦上线&#xff0c;错误可能直接导致…

作者头像 李华