VSCode的“保存时运行”:自动执行代码检查和格式化
发布时间 - 2025-12-27 00:00:00 点击率:次VSCode“保存时运行”功能可自动执行ESLint检查与Prettier格式化。需开启Format On Save、配置默认格式化器及eslint.run:onSave,并推荐按“先ESLint修复、后格式化”顺序执行,通过editor.codeActionsOnSave控制链式调用,且建议使用工作区.settings.json实现项目级独立配置。
VSCode 的“保存时运行”功能,能让你在 Ctrl+S(或 Cmd+S)的瞬间自动完成代码检查(如 ESLint)和格式化(如 Prettier),无需手动触发,既省事又确保团队代码风格统一。
启用保存时格式化
这是最常用的基础设置。VSCode 自带格式化支持,但需明确开启并指定默认格式化工具:
- 打开设置(Ctrl+,),搜索 format on save,勾选 Editor: Format On Save
- 确保项目中已安装并配置好格式化扩展(如 Prettier),且在工作区或用户设置中设为默认:
"editor.defaultFormatter": "esbenp.prettier-vscode" - 如需仅对特定语言生效,可用语言专属设置,例如:
"[javascript]": { "editor.formatOnSave": true }
保存时运行代码检查(ESLint)
ESLint 默认不自动修复,需配合保存动作启用“保存即修复”:
- 安装 ESLint 扩展,并在项目根目录有有效配置(.eslintrc.js 或 eslint.config.js)
- 在设置中开启:
"eslint.run": "onSave"(控制何时触发检查)
"eslint.codeActionOnSave.mode": "all"(启用所有可自动修复的问题) - 注意:部分规则(如 no-console)无法自动修复,只会标出警告;而 semi、quotes 等则会直接修正
组合使用:先检查再格式化,还是反过来?
顺序很重要——错误的执行顺序可能导致格式化覆盖 ESLint 修复,或产生冲突:
- 推荐顺序:先 ESLint 自动修复,再格式化。因为 ESLint 的修复更语义化(如重命名变量、补全 return),而格式化专注空格缩进等样式
- 通过设置控制执行链:
"editor.codeActionsOnSave": { "source.fixAll.eslint": true }
该配置会优先触发 ESLint 修复,之后再走 formatOnSave 流程 - 若发现格式异常,可临时禁用某一项测试顺序,或检查扩展间是否冲突(如 Prettier 和 ESLint 规则重复)
按项目开关,避免影响其他工程
不同项目可能用不同规范(如 Vue 项目配 Vetur + ESLint,Python 项目用 Black + Flake8),应优先使用工作区设置:
- 在项目根目录创建 .vscode/settings.json,写入当前项目专用配置
- 例如:
{
"editor.formatOnSave": true,
"eslint.run": "onSave",
"editor.codeActionsOnSave": { "source.fixAll.eslint": true }
} - 这样切换到其他文件夹时,不会沿用旧规则,也方便把配置纳入 Git 协作
# vue
# javascript
# python
# java
# vscode
# js
# git
# json
# 工具
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
canvas 画布在主流浏览器中的尺寸限制详细介绍
详解Android——蓝牙技术 带你实现终端间数据传输
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
如何在云主机快速搭建网站站点?
Bootstrap整体框架之CSS12栅格系统
开心动漫网站制作软件下载,十分开心动画为何停播?
网易LOFTER官网链接 老福特网页版登录地址
公司门户网站制作流程,华为官网怎么做?
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
魔毅自助建站系统:模板定制与SEO优化一键生成指南
网页设计与网站制作内容,怎样注册网站?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
QQ浏览器网页版登录入口 个人中心在线进入
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
javascript中的try catch异常捕获机制用法分析
如何用PHP快速搭建CMS系统?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
Mybatis 中的insertOrUpdate操作
如何在七牛云存储上搭建网站并设置自定义域名?
南京网站制作费用,南京远驱官方网站?
Laravel如何实现API资源集合?(Resource Collection教程)
如何快速搭建虚拟主机网站?新手必看指南
Laravel如何为API编写文档_Laravel API文档生成与维护方法
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
如何在宝塔面板中修改默认建站目录?
laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程
黑客如何通过漏洞一步步攻陷网站服务器?
Laravel模型事件有哪些_Laravel Model Event生命周期详解
太平洋网站制作公司,网络用语太平洋是什么意思?
Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优
如何批量查询域名的建站时间记录?
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
什么是javascript作用域_全局和局部作用域有什么区别?
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
如何在IIS中新建站点并配置端口与物理路径?
清除minerd进程的简单方法
如何破解联通资金短缺导致的基站建设难题?
Python文件操作最佳实践_稳定性说明【指导】
网站制作报价单模板图片,小松挖机官方网站报价?
EditPlus 正则表达式 实战(3)
如何在阿里云服务器自主搭建网站?
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
高性价比服务器租赁——企业级配置与24小时运维服务
5种Android数据存储方式汇总


