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

VSCode + ESLint 高效代码规范实战 — 一键保存自动修复与规则定制

1. 为什么需要代码规范工具刚入行前端时我最头疼的就是同事留下的风格迥异的代码——有的缩进用空格有的用Tab有人写分号有人不写单引号和双引号随机出现。后来团队引入了ESLint配合VSCode的自动修复功能这些问题终于得到了根治。代码规范工具的核心价值在于统一团队风格避免因个人习惯引发的格式战争提前暴露错误在保存文件时就发现潜在语法问题提升可维护性规范的代码就像排版整齐的书籍阅读体验更好减少CR负担不用再在代码评审时争论缩进问题我在多个项目中实测发现配置得当的ESLintVSCode组合可以消除80%以上的基础语法错误和风格问题。特别是在Vue/React这类现代前端项目中当文件同时包含JS/HTML/CSS时规范工具的作用更加明显。2. 基础环境搭建2.1 必备工具安装首先确保你的VSCode是较新版本建议≥1.60然后安装这些核心插件# 全局安装ESLint如果项目已有可跳过 npm install -g eslint在VSCode扩展商店搜索安装ESLint微软官方出品Prettier可选但建议安装VeturVue项目必需安装后记得重启VSCode让插件生效。我遇到过好几次插件不工作的情况重启后就好了。2.2 项目级ESLint配置在项目根目录执行如果已有.eslintrc.*文件可跳过# 初始化ESLint配置 eslint --init根据项目类型选择配置Vue项目选To check syntax and find problemsReact项目选To check syntax, find problems, and enforce code style建议选择Airbnb或Standard作为基础规则集初始化完成后会生成.eslintrc.js文件这是我的Vue项目配置示例module.exports { env: { browser: true, es2021: true, }, extends: [ plugin:vue/essential, airbnb-base, ], parserOptions: { ecmaVersion: 12, sourceType: module, }, plugins: [ vue, ], rules: { // 自定义规则写在这里 no-console: process.env.NODE_ENV production ? warn : off, vue/multi-word-component-names: off }, };3. VSCode深度配置3.1 settings.json核心配置按Ctrl,打开设置点击右上角打开设置(json)添加这些关键配置{ // 基础配置 editor.codeActionsOnSave: { source.fixAll.eslint: true }, eslint.validate: [ javascript, javascriptreact, typescript, typescriptreact, vue, html ], // 高级配置 eslint.format.enable: true, eslint.run: onType, eslint.alwaysShowStatus: true, editor.formatOnSave: false, // 避免与Prettier冲突 // Vue项目特殊配置 eslint.options: { extensions: [.js, .vue] }, vetur.validation.template: false // 禁用Vetur的模板检查 }常见坑点排查如果Vue文件不生效检查是否安装了Vetur插件如果TypeScript文件不检查需要安装typescript-eslint/parser保存时没反应检查右下角ESLint状态栏是否报错3.2 保存时自动修复要实现保存时自动修复关键在于这两个配置editor.codeActionsOnSave: { source.fixAll.eslint: true }, editor.formatOnSave: false实测发现很多同学配置无效是因为同时开启了Prettier的formatOnSave没有禁用VSCode自带的格式化功能.eslintrc.js中存在语法错误建议的调试步骤右下角查看ESLint是否激活打开输出面板(CtrlShiftU)选择ESLint日志创建一个明显不符合规则的代码如未使用的变量观察保存时是否自动修复4. 规则定制实战4.1 修改现有规则在.eslintrc.js的rules对象中添加自定义规则rules: { // 生产环境禁用console no-console: process.env.NODE_ENV production ? error : warn, // 允许使用运算符 no-plusplus: off, // 自定义缩进规则 indent: [error, 2, { SwitchCase: 1, VariableDeclarator: first }], // Vue相关规则 vue/html-self-closing: [error, { html: { void: always, normal: never, component: always } }] }4.2 团队规范配置技巧对于团队项目建议采用扩展配置的方式创建共享配置包npm init eslint/config发布到私有npm仓库或作为git子模块在项目中继承extends: [ our-team/eslint-config-vue ]我主导过的项目中最有用的几条规则强制函数最大行数不超过50行禁止直接修改函数参数要求Promise必须有catch处理组件props必须定义类型校验5. 高级应用场景5.1 配合Prettier使用虽然ESLint也能处理格式问题但Prettier的格式化更专业。配置要点安装依赖npm install --save-dev prettier eslint-config-prettier修改ESLint配置extends: [ prettier // 必须放在最后 ]添加.prettierrc.jsmodule.exports { semi: true, singleQuote: true, printWidth: 100, trailingComma: all };5.2 TypeScript项目配置对于TS项目需要额外配置extends: [ plugin:typescript-eslint/recommended ], parser: typescript-eslint/parser, plugins: [typescript-eslint], rules: { typescript-eslint/no-explicit-any: off }5.3 自定义插件开发当现有规则不满足需求时可以开发自定义插件创建插件骨架npx yo eslint:plugin添加规则文件module.exports { meta: { type: problem, docs: { description: 禁止使用特定的变量名, } }, create(context) { return { Identifier(node) { if (node.name oldVar) { context.report({ node, message: 避免使用oldVar作为变量名 }); } } }; } };6. 疑难问题解决问题1ESLint在Vue模板中不生效解决方案确保安装了eslint-plugin-vue并检查.eslintrc.js中的extends包含plugin:vue/recommended问题2保存时修复部分规则无效可能原因某些规则需要手动修复如复杂度检查调试方法运行eslint --fix src/查看完整输出问题3与Prettier规则冲突典型表现缩进被反复修改终极方案使用eslint-config-prettier禁用所有冲突规则我在实际项目中遇到最棘手的问题是SSR项目的服务端代码检查最终通过这样的配置解决overrides: [ { files: [**/server/**/*.js], env: { node: true }, rules: { no-console: off, import/no-extraneous-dependencies: [error, { devDependencies: true }] } } ]

相关文章:

VSCode + ESLint 高效代码规范实战 — 一键保存自动修复与规则定制

1. 为什么需要代码规范工具 刚入行前端时,我最头疼的就是同事留下的"风格迥异"的代码——有的缩进用空格,有的用Tab;有人写分号有人不写;单引号和双引号随机出现。后来团队引入了ESLint,配合VSCode的自动修复…...

α-银环蛇素(α-Bungarotoxin-FITC)在神经肌肉接头研究中的应用

α-银环蛇素(α-Bungarotoxin, α-BTX)是一种从银环蛇(Bungarus multicinctus)液中分离出的多肽素。在基础生命科学研究领域,特别是神经生物学和肌肉生理学方向,该素因其对烟碱型乙酰胆碱受体(n…...

mT5中文-base零样本增强模型部署教程:Ubuntu 20.04下conda环境隔离与依赖解决

mT5中文-base零样本增强模型部署教程:Ubuntu 20.04下conda环境隔离与依赖解决 你是不是遇到过这种情况:好不容易找到一个功能强大的AI模型,结果在部署时被各种依赖冲突、环境问题搞得焦头烂额?特别是当你想在服务器上同时运行多个…...

Claude 4.6国内镜像实测:编程技术硬核拆解

2026年2月,Anthropic发布Claude Opus 4.6,在百万上下文、宪法推理、代码智能体三大方向实现突破性升级。国内用户无需特殊网络环境,通过聚合镜像站RskAi(ai.rsk.cn)即可免费体验这款旗舰模型——实测响应稳定&#xff…...

保姆级教程:用Cherry Studio和DeepSeek R1,给你的个人学习笔记做个AI大脑(附避坑指南)

打造你的AI第二大脑:Cherry Studio与DeepSeek R1实战指南 你是否经常遇到这样的场景:收藏了上百篇优质文章却从未回顾,整理了数十份学习笔记却找不到关键信息,或是复习时对着零散资料无从下手?在信息爆炸的时代&#x…...

【2025最新】基于SpringBoot+Vue的金帝豪斯健身房管理系统管理系统源码+MyBatis+MySQL

💡实话实说:CSDN上做毕设辅导的都是专业技术服务,大家都要生活,这个很正常。我和其他人不同的是,我有自己的项目库存,不需要找别人拿货再加价,所以能给到超低价格。摘要 随着健康生活理念的普及…...

Qwen3-32B-Chat百度搜索语义理解:‘RTX4090D跑Qwen3‘背后的真实用户需求解码

Qwen3-32B-Chat百度搜索语义理解:RTX4090D跑Qwen3背后的真实用户需求解码 1. 为什么RTX4090D用户关注Qwen3-32B部署 当用户在百度搜索"RTX4090D跑Qwen3"时,背后隐藏着三类典型需求: 硬件适配验证:4090D用户最关心24G…...

Fish Speech-1.5部署实战:Xinference 2.0.0一键语音合成教程

Fish Speech-1.5部署实战:Xinference 2.0.0一键语音合成教程 想不想让AI帮你把文字变成自然流畅的语音?无论是给视频配音、制作有声书,还是打造一个智能语音助手,高质量的语音合成技术都是关键。今天,我们就来手把手教…...

固件SBOM生成失败?别再手动grep了!C语言供应链检测终极流程(含LLVM IR解析器+JSON-LD输出引擎)限时开源

第一章:固件SBOM生成失败?别再手动grep了!C语言供应链检测终极流程(含LLVM IR解析器JSON-LD输出引擎)限时开源固件二进制中嵌入的第三方组件常因编译优化、静态链接和符号剥离而“隐身”,传统基于字符串匹配…...

SAP 周期性凭证(FBD1)创建与清单(F.15)查询实战指南

1. 什么是SAP周期性凭证? 在财务工作中,每个月、每个季度甚至每年都会遇到一些重复性很强的记账业务。比如每月固定的房租支出、水电费缴纳,或是季度性的利息收入等。这些业务如果每次都手动录入凭证,不仅效率低下,还容…...

GLM-4-9B-Chat-1M性能优化:enable_chunked_prefill吞吐提升3倍详解

GLM-4-9B-Chat-1M性能优化:enable_chunked_prefill吞吐提升3倍详解 如果你正在寻找一个能一口气读完200万字文档,还能在单张消费级显卡上流畅运行的AI模型,那么GLM-4-9B-Chat-1M很可能就是你的答案。这个模型最吸引人的地方,就是…...

文墨共鸣在开源项目协作中的应用:自动生成Issue回复与PR描述

文墨共鸣在开源项目协作中的应用:自动生成Issue回复与PR描述 如果你维护过一个稍微有点人气的开源项目,肯定对下面这个场景不陌生:下班回家,打开项目页面,发现通知栏又多了几十条未读消息。Issue区里,有人报…...

手把手教你实现MCP Server:解锁大模型开发必备技能(收藏版)

本文将带你深入了解MCP(模型上下文协议)的工作原理,并通过实例讲解如何从零开始实现MCP Server。MCP是连接大模型与外部工具的关键协议,掌握它对于开发高效的AI应用至关重要。文章将详细解析SSE和JSON-RPC 2.0在MCP中的应用&#…...

ChatGLM3-6B-128K与SpringBoot集成:企业级应用开发

ChatGLM3-6B-128K与SpringBoot集成:企业级应用开发 1. 引言 在企业级应用开发中,AI能力的集成已经成为提升产品竞争力的关键因素。ChatGLM3-6B-128K作为支持128K上下文长度的开源大语言模型,为企业处理长文本任务提供了强大的技术基础。当它…...

ai coding工具共性(五)sub agent(1)介绍

一、为什么需要sub agentssub agent 的本质,不是提升模型能力,而是引入“软件工程中的分层与职责划分”到 AI 推理过程。它通过将一个复杂任务拆解为多个受限子任务,使每个 agent 在更小、更干净的上下文中运行,从而降低上下文污染…...

从时序到实战:深入解析1-Wire单总线通信协议

1. 1-Wire协议的前世今生 第一次接触1-Wire总线是在2013年做智能农业项目时,当时需要监测大棚内的土壤温度。项目经理扔给我一包DS18B20传感器,说"用这个,一根线就能搞定"。我当时盯着那根细如发丝的信号线,怎么也想不明…...

春秋云境CVE-2019-1010153

1.阅读靶场介绍看到zzcms,相信各位彦祖们也想到博主的zzcms万能玩法哟2.启动靶场如下所示3.拼接/admin进入后台账号密码是admin/admin4.寻找文件上传的位置这里我们找到了这个地方bp抓包,改为phtml绕过5.中国蚁剑启动数据库操作找到下图所示位置有不懂的…...

A Systematic Study of Data Modalities and Strategies for Co-training Large Behavior Models for Robot

《利用多样化数据协同训练构建大规模具身模型》由丰田研究所(TRI)进行的大规模实证研究,系统性地探究了如何通过引入多样化的外部数据(协同训练)来提升视觉-语言-动作(VLA)大模型在机器人操作任…...

从控制器视角解析DDR4 DIMM:UDIMM、RDIMM与LRDIMM的实战选型指南

1. DDR4内存基础:控制器与DIMM的协同原理 当你拆开一台电脑或服务器时,内存条总是最显眼的部件之一。但很少有人注意到,这些看似简单的电路板背后,其实隐藏着一套精密的通信系统。作为内存控制器工程师,我经常需要解释…...

DownKyi:自媒体创作者的视频资源效能倍增工具

DownKyi:自媒体创作者的视频资源效能倍增工具 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等)。…...

湿度计算不再难:从绝对湿度到相对湿度的保姆级教程(含Python代码示例)

湿度计算不再难:从绝对湿度到相对湿度的保姆级教程(含Python代码示例) 在气象学、农业、工业生产和日常生活中,湿度是一个至关重要的参数。无论是设计一个智能家居系统,还是开发气象监测设备,亦或是进行环境…...

魔法粘贴快速入门 (2分钟)

欢迎访问官网:Liii STEM官网,扶稳键盘 笔记敲出推背感。 魔法粘贴 (magic paste) 魔法粘贴是干什么的? 将纯文本、网页、PDF、手写公式等内容中的文本、代码、公式、图表等结构无损地(99%)一键…...

Android tinyalsa深度解析之pcm_params_format_test调用流程与实战(一百六十八)

简介: CSDN博客专家、《Android系统多媒体进阶实战》作者 博主新书推荐:《Android系统多媒体进阶实战》🚀 Android Audio工程师专栏地址: Audio工程师进阶系列【原创干货持续更新中……】🚀 Android多媒体专栏地址&a…...

别再只用官方商店了!手把手教你给CasaOS添加这8个宝藏第三方应用源

解锁CasaOS隐藏玩法:8个必装第三方应用源全指南 当你第一次打开CasaOS的官方应用商店时,可能会被它简洁的界面所吸引。但随着使用深入,不少用户会发现官方商店的应用选择有限,难以满足个性化需求。这就像拥有一台高性能智能手机&a…...

避坑指南:LeRobot项目舵机配置中的5个常见错误及解决方法(飞特STS3215专用)

LeRobot项目飞特STS3215舵机配置避坑实战手册 在机器人开发领域,舵机配置往往是项目落地的第一道门槛。最近在LeRobot项目中配置飞特STS3215舵机时,我踩遍了几乎所有可能的坑。这篇文章不会重复官方文档的基础操作,而是聚焦五个最棘手的实际问…...

Android tinyalsa深度解析之pcm_params_get_mask调用流程与实战(一百六十七)

简介: CSDN博客专家、《Android系统多媒体进阶实战》作者 博主新书推荐:《Android系统多媒体进阶实战》🚀 Android Audio工程师专栏地址: Audio工程师进阶系列【原创干货持续更新中……】🚀 Android多媒体专栏地址&a…...

Anaconda3环境变量配置避坑指南:解决‘conda command not found‘问题

Anaconda3环境变量配置深度解析:从原理到实战的完整避坑手册 刚完成Anaconda3安装的兴奋感,往往会被终端里冰冷的"conda: command not found"提示瞬间浇灭。这不是个例——据统计,超过35%的Anaconda用户在初次安装后都会遇到环境变…...

大模型初探:收藏这份指南,小白也能轻松入门!

大模型(Large Model)是泛指参数规模庞大(十亿至万亿级)、能处理多模态数据(文本、图像、音频等)的通用AI模型;大语言模型(Large Language Model, LLM)是大模型的子集&…...

WeKnora:面向深层文档理解与智能检索的 RAG 框架

WeKnora 是一个基于大语言模型 (LLM) 的框架,专为深层文档理解和语义检索而设计,特别擅长处理复杂的异构文档。它采用模块化架构,结合了多模态预处理、语义向量索引、智能检索和大模型推理。 你可以将它理解为一个为团队量身打造的“超级知识…...

3分钟掌握NCM解密:开源工具ncmdump实现网易云音乐跨平台播放自由

3分钟掌握NCM解密:开源工具ncmdump实现网易云音乐跨平台播放自由 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM加密文件无法在其他设备播放而烦恼吗?这款开源工具ncmdump让你快速…...