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.jseslint.config.js
  • 在设置中开启:
    "eslint.run": "onSave"(控制何时触发检查)
    "eslint.codeActionOnSave.mode": "all"(启用所有可自动修复的问题)
  • 注意:部分规则(如 no-console)无法自动修复,只会标出警告;而 semiquotes 等则会直接修正

组合使用:先检查再格式化,还是反过来?

顺序很重要——错误的执行顺序可能导致格式化覆盖 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数据存储方式汇总