当前位置: 首页 > news >正文

Vue 3 + ESLint 9 代码规范配置指南

在 Vue 3 项目里引入 ESLint,不只是为了“看着舒服”——它能帮你提前揪出潜在 bug,统一团队的代码风格,避免因为缩进、引号这类鸡毛蒜皮吵起来。关键插件是 eslint-plugin-vue,它专门为 Vue 文件提供了针对性规则。

参考:ESLint v9 官方文档

开始之前:装包与初始化

一行命令搞定依赖:

# 安装 ESLint 核心库
npm install --save-dev eslint# 交互式生成配置文件
npx eslint --init

初始化过程会问一些问题(比如你用的是哪种模块格式、框架、TypeScript 还是 JS 等),一路按项目需求选就行。

image

配置脚本:写入 package.json

把下面这段加进 scripts​ 里,日常敲 npm run lint​ 就能检查所有 .js​、.ts​、.vue 文件:

"scripts": {"dev": "vite","build": "vue-tsc -b && vite build","preview": "vite preview","lint": "eslint . --ext .js,.ts,.vue","lint:fix": "eslint . --ext .js,.ts,.vue --fix","lint:src": "eslint src --ext .js,.ts,.vue","lint:typescript": "eslint . --ext .ts,.vue","lint:report": "eslint . --ext .js,.ts,.vue --format html > eslint-report.html","precommit": "lint-staged"
}

常见坑​:如果你用 pnpm,别忘了装 lint-staged​ 和 husky​,否则 precommit 脚本不会生效。

配置文件:eslint.config.ts(ESLint 9 风格)

ESLint 9 全面拥抱扁平配置(flat config),不再用 .eslintrc.js。以下是一个适配 Vue 3 + TypeScript 的示例:

import js from '@eslint/js';
import globals from 'globals';
import tseslint from 'typescript-eslint';
import pluginVue from 'eslint-plugin-vue';
import { defineConfig } from 'eslint/config';export default defineConfig([{ignores: ['node_modules','dist','.gitignore','package.json','package-lock.json','.DS_Store','dev-dist','dist_electron','*.d.ts','src/assets/**'],files: ['**/*.{js,mjs,cjs,ts,mts,cts,vue}'],plugins: { js },extends: ['js/recommended'],languageOptions: { globals: globals.browser }},{ files: ['**/*.js'], languageOptions: { sourceType: 'commonjs' } },/** js推荐配置 */tseslint.configs.recommended,/** vue推荐配置 */pluginVue.configs['flat/essential'],{ files: ['**/*.vue'], languageOptions: { parserOptions: { parser: tseslint.parser } } }
]);

划重点pluginVue.configs['flat/essential']​ 是 ESLint 9 下 eslint-plugin-vue​ 的推荐入口。如果你需要更强的规则(如 strongly-recommended​),可以改为 flat/strongly-recommended

http://www.jsqmd.com/news/857894/

相关文章:

  • 对比按量计费与Token Plan套餐,哪种方式更适合长期稳定的项目
  • 新技能get--自动公众号和小红书种草
  • 码蹄集MC0519伏击桥下探情况
  • 收藏!小白也能看懂,AI Agent到底是个啥?它将如何改变你的工作与生活?
  • UE5自建HTTP网络模块:从蓝图黑盒到可控基础设施
  • 技术架构解析:APK Installer实现Windows系统直接运行Android应用的技术方案
  • 微信好友关系智能检测:3步找出谁已删除或拉黑你
  • 答辩 PPT 还在熬夜改?Paperxie 这套 AI 生成流程,让本科生从选题到定稿全程躺平
  • 如何利用DeepSeek-Coder-V2开源代码模型提升开发效率?
  • 终极Mac微信增强插件:防撤回与多开登录的完整解决方案
  • 3个核心技巧:用FanControl彻底解决Windows风扇噪音问题
  • 【Midjourney景深控制终极指南】:20年AI视觉工程师亲授f/1.2–f/16级物理光圈模拟技法
  • 使用Taotoken后模型API调用延迟与稳定性体感观察
  • ARM SVE指令集:SIMD技术进阶与性能优化实践
  • OpenHTMLtoPDF:现代Java应用中的HTML转PDF终极解决方案
  • Onekey Steam清单下载工具:轻松获取游戏清单的终极解决方案
  • 在Hermes Agent项目中集成Taotoken自定义模型提供方
  • 耗子拿枪了:AI如何把漏洞挖掘的门槛从“院士”拉低到“脚本小子”
  • 我用AI把公司10万行代码屎山重构了,CTO看了代码后说:你提前转正
  • 工程供应商管理软件怎么选?从准入评估、招标比价到结算评价的选型指南
  • CircuitJS1桌面版:三步实现专业级离线电路仿真
  • Photoshop图层批量导出插件:如何让设计效率提升90倍?
  • KMS_VL_ALL_AIO技术架构深度解析:Windows与Office激活引擎的设计哲学
  • 告别Spconv安装噩梦:用Docker一键搞定PyTorch 1.10 + CUDA 11.8下的环境配置
  • 3分钟掌握智慧职教刷课脚本:全平台自动学习解决方案
  • Scroll Reverser终极指南:3分钟彻底解决Mac滚动方向冲突难题
  • 2026最新大模型学习路线:从零基础到实战精通,少走2年弯路
  • 3分钟掌握TrafficMonitor插件:打造你的智能桌面监控中心
  • 高效解决PL2303兼容性问题:Windows 10/11专业级驱动配置实战指南
  • 中山采购/质量/项目岗考证避坑:众智商学院6证合报,一站式搞定CPPM/PMP/SCMP/六西格玛/中级经济师/CCAA - 众智商学院课程中心