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


相关推荐: google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  Python文件异常处理策略_健壮性说明【指导】  如何挑选优质建站一级代理提升网站排名?  如何在服务器上配置二级域名建站?  如何确保西部建站助手FTP传输的安全性?  JavaScript如何实现音频处理_Web Audio API如何工作?  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  使用Dockerfile构建java web环境  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  Angular 表单中正确绑定输入值以确保提交与验证正常工作  Laravel怎么在Blade中安全地输出原始HTML内容  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  Laravel Fortify是什么,和Jetstream有什么关系  Laravel怎么为数据库表字段添加索引以优化查询  如何快速完成中国万网建站详细流程?  如何制作一个表白网站视频,关于勇敢表白的小标题?  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  移动端脚本框架Hammer.js  制作旅游网站html,怎样注册旅游网站?  如何用美橙互联一键搭建多站合一网站?  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  Laravel如何集成Inertia.js与Vue/React?(安装配置)  ,南京靠谱的征婚网站?  如何在阿里云虚拟主机上快速搭建个人网站?  如何在景安云服务器上绑定域名并配置虚拟主机?  Python正则表达式进阶教程_复杂匹配与分组替换解析  网站建设要注意的标准 促进网站用户好感度!  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  如何在宝塔面板中修改默认建站目录?  使用C语言编写圣诞表白程序  高防服务器如何保障网站安全无虞?  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  如何在阿里云香港服务器快速搭建网站?  Java遍历集合的三种方式  详解Huffman编码算法之Java实现  Android中AutoCompleteTextView自动提示  JS中对数组元素进行增删改移的方法总结  Swift中swift中的switch 语句  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  如何快速生成ASP一键建站模板并优化安全性?  如何在搬瓦工VPS快速搭建网站?  Laravel如何使用Vite进行前端资源打包?(配置示例)