首页/新闻资讯/正文详情

Vue3+Vite+TS项目集成ESLint与Prettier全攻略

发布时间:2026/11/5 6:31:31 来源:云帆数科 栏目:资讯中心
Vue3+Vite+TS项目集成ESLint与Prettier全攻略
1. 项目背景与目标这个系列教程的第三部分我们将深入探讨如何在Vue3ViteTS项目中集成ESLint和Prettier打造一个规范化的后台管理系统开发环境。现代前端开发中代码质量和风格统一性越来越受到重视特别是在团队协作场景下。Vue3的Composition API与TypeScript的强类型系统结合能大幅提升代码可维护性。而Vite作为新一代构建工具其快速的冷启动和热更新能力让开发体验更加流畅。但仅有这些还不够我们还需要通过ESLint捕获潜在错误和不规范的代码模式使用Prettier统一代码风格配置保存时自动格式化减少手动调整格式的时间确保TypeScript类型检查与代码规范协同工作2. 环境准备与初始化2.1 创建基础项目首先确保你已经安装了Node.js建议18版本和pnpm性能优于npm/yarn# 使用Vite官方脚手架初始化项目 pnpm create vitelatest vue3-admin --template vue-ts选择配置时框架Vue变体TypeScript其他选项保持默认2.2 核心依赖版本选择当前推荐的稳定版本组合{ vue: ^3.4.0, vite: ^5.0.0, typescript: ^5.3.0, eslint: ^8.56.0, prettier: ^3.2.0 }注意Vue3推荐使用script setup语法它能完美配合TypeScript类型推导。在tsconfig.json中确保开启了严格模式{ compilerOptions: { strict: true } }3. ESLint配置详解3.1 初始化ESLint执行ESLint初始化命令pnpx eslint --init配置选项如下检查类型语法问题模块类型ES modules框架Vue使用TypeScript是运行环境Browser Node配置文件格式TypeScript安装jiti低版本Node需要是包管理器pnpm这会生成基础的eslint.config.ts文件并安装相关依赖。3.2 自定义规则配置修改eslint.config.ts添加Vue3和TypeScript特定规则import { defineConfig } from eslint/config import js from eslint/js import globals from globals import tseslint from typescript-eslint import pluginVue from eslint-plugin-vue export default defineConfig([ { files: [**/*.{js,ts,vue}], plugins: { js }, languageOptions: { globals: { ...globals.browser, ...globals.node }, parserOptions: { ecmaVersion: latest, sourceType: module } }, rules: { vue/multi-word-component-names: off, no-unused-vars: warn } }, tseslint.configs.recommended, pluginVue.configs[flat/recommended], { files: [**/*.vue], rules: { vue/script-setup-uses-vars: error } } ])关键配置说明关闭Vue多单词组件名限制后台系统常用短组件名开启script setup语法检查未使用变量警告而非报错4. Prettier集成与风格统一4.1 安装与基础配置安装必要依赖pnpm add prettier eslint-config-prettier eslint-plugin-prettier -D创建.prettierrc.jsmodule.exports { printWidth: 100, tabWidth: 2, useTabs: false, semi: true, singleQuote: true, trailingComma: all, bracketSpacing: true, arrowParens: always, vueIndentScriptAndStyle: true, endOfLine: lf }4.2 与ESLint协同工作更新eslint.config.ts添加Prettier集成import eslintConfigPrettier from eslint-config-prettier import eslintPluginPrettier from eslint-plugin-prettier // 在原有配置数组最后添加 export default defineConfig([ // ...其他配置 eslintConfigPrettier, { plugins: { prettier: eslintPluginPrettier }, rules: { prettier/prettier: error } } ])5. 开发环境优化5.1 VSCode自动格式化配置在.vscode/settings.json中添加{ editor.defaultFormatter: esbenp.prettier-vscode, editor.formatOnSave: true, editor.codeActionsOnSave: { source.fixAll.eslint: true }, eslint.validate: [javascript, typescript, vue] }5.2 解决常见冲突问题TS类型导入报错 在eslint.config.ts中添加{ rules: { typescript-eslint/consistent-type-imports: [ error, { prefer: type-imports } ] } }Vue模板缩进问题 在.prettierrc.js中添加{ vueIndentScriptAndStyle: true }6. 构建与生产环境配置6.1 添加lint脚本package.json中添加{ scripts: { lint: eslint . --ext .js,.ts,.vue, lint:fix: eslint . --ext .js,.ts,.vue --fix, prettier: prettier --check ., prettier:fix: prettier --write . } }6.2 Git提交前检查安装husky和lint-stagedpnpm add husky lint-staged -D配置package.json{ lint-staged: { *.{js,ts,vue}: [ eslint --fix, prettier --write ] } }初始化huskynpx husky init echo npx lint-staged .husky/pre-commit7. 高级配置技巧7.1 按需配置规则针对不同文件类型设置不同规则{ files: [**/*.ts], rules: { typescript-eslint/explicit-function-return-type: error } }7.2 自定义格式化规则对于特定目录禁用规则{ files: [src/assets/**], rules: { prettier/prettier: off } }7.3 性能优化.eslintignore文件添加dist/ node_modules/ *.d.ts8. 常见问题解决方案8.1 ESLint报错但代码正确可能是解析器版本问题尝试pnpm add typescript-eslint/parserlatest -D8.2 Prettier不生效检查VSCode是否安装了Prettier插件项目根目录是否有.prettierrc文件VSCode工作区设置是否被覆盖8.3 Vue文件格式化异常确保安装了Volar插件而非Vetur并在VSCode设置中{ volar.format.defaultFormatter.html: prettier }9. 项目结构建议最终推荐的项目结构├── .eslintignore ├── .eslintrc.js ├── .prettierrc.js ├── .vscode/ │ └── settings.json ├── src/ │ ├── assets/ # 静态资源 │ ├── components/ # 公共组件 │ ├── composables/ # 组合式函数 │ ├── router/ # 路由配置 │ ├── stores/ # Pinia状态管理 │ ├── styles/ # 全局样式 │ ├── utils/ # 工具函数 │ ├── views/ # 页面组件 │ ├── App.vue │ └── main.ts ├── tsconfig.json └── vite.config.ts10. 持续维护建议定期更新依赖版本团队统一IDE配置添加注释说明特殊规则文档记录规范约定这套配置已经过多个实际项目验证能有效提升Vue3后台管理系统的开发效率和代码质量。根据团队实际情况可以进一步调整规则严格程度。

相关推荐

Vue3项目ESLint+Prettier代码规范配置指南
Vue3项目ESLint+Prettier代码规范配置指南

1. 项目背景与目标这个系列教程的第三部分将重点解决Vue3项目中的代码规范问题。作为现代前端开发的标准配置,ESLint和Prettier的组合能够显著提升团队协作效率。Vite作为新一代构建工具,与TypeScript的结合更是如虎添翼。在实际开发中,我们经… · 2026/11/4 7:19:26

AI编程助手skills机制深度解析:从原理到团队工作流实践
AI编程助手skills机制深度解析:从原理到团队工作流实践

1. 从“skills”这个热词说起:它到底是什么,为什么突然火了最近几个月,不管是在技术社区还是开发者群里,“skills”这个词出现的频率高得离谱。你随便翻翻热搜词列表,能看到claude code、codex、agents、plugin、super… · 2026/11/4 13:19:34

牛几判定:五选三组合枚举与O(1)查表优化
牛几判定:五选三组合枚举与O(1)查表优化

“牛几”这三个字,第一次看到的人多半会愣一下,以为是某种方言或者暗语,其实它就是纸牌游戏里最常被问的那句话——“这手牌是牛几?”背后对应的是一个相当经典的组合判定问题:五张牌,从中挑三张&#xff0… · 2026/11/4 6:32:36

【adb】AndroidStudio调试
【adb】AndroidStudio调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 6:31:27

编译过程理解
编译过程理解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 6:31:27

零基础实现IEC61850(七)细说数据更新
零基础实现IEC61850(七)细说数据更新

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 6:31:27

KytyPS5 开源PS5模拟器完全指南:手把手在 PC 上编译并首次启动
KytyPS5 开源PS5模拟器完全指南:手把手在 PC 上编译并首次启动

KytyPS5 开源PS5模拟器完全指南:手把手在 PC 上编译并首次启动 【免费下载链接】KytyPS5 PlayStation 5 translation layer for Windows, Linux and macOS 项目地址: https://gitcode.com/gh_mirrors/ky/KytyPS5 想不装主机、直接在 PC 上玩 PS5 游戏&#x… · 2026/11/5 6:31:27

SuperSplat 高斯泼溅编辑 3 坑排查指南
SuperSplat 高斯泼溅编辑 3 坑排查指南

SuperSplat 高斯泼溅编辑 3 坑排查指南 【免费下载链接】super-splat 3D Gaussian Splat Editor 项目地址: https://gitcode.com/gh_mirrors/su/super-splat 在浏览器里直接做 3D Gaussian Splat 编辑的人,多半会先碰到 SuperSplat。真正卡人的很少是渲染&am… · 2026/11/5 6:31:27

Google Attestation Key
Google Attestation Key

1 简介 因为最近要用到这个,所以简单写写。 定义: Attestation Key是Android Key Attestation 的信任根,用来给设备TEE/StrongBox里的认证证书链做信任背书,让后端服务器可信地确认:这个密钥真的跑在安全硬件里&… · 2026/11/5 6:30:27

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

多智能体协作系统架构设计与实践优化
多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39

大模型系统性入门实战指南:从原理到部署微调的全链路路线
大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39

鸿蒙文件系统沙箱机制解析与开发实践
鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码