在VSCode中配置Prettier与ESLint,实现代码自动格式化

发布时间 - 2025-12-18 00:00:00    点击率:
VSCode中配置Prettier与ESLint协同工作,需安装对应扩展及项目依赖(eslint、prettier、eslint-config-prettier、eslint-plugin-prettier),在.eslintrc.js中extend 'plugin:prettier/recommended',并通过.vscode/settings.json启用保存时ESLint自动修复和格式化,确保二者不冲突、分工明确。

在 VSCode 中配置 Prettier 与 ESLint 实现自动格式化,关键不是装插件,而是让两者协同工作、不打架——Prettier 负责统一代码样式(缩进、引号、换行等),ESLint 负责代码质量与规范检查(如未定义变量、禁止 var 等),二者分工明确才能真正提效。

安装必要扩展和依赖

先确保本地项目和编辑器都装对了东西:

  • VSCode 扩展:安装 Prettier(官方,作者:esbenp)和 ESLint(官方,作者:dbaeumer)
  • 项目依赖(推荐本地安装,避免团队环境差异):
    npm install --save-dev eslint prettier eslint-config-prettier eslint-plugin-prettier
    其中 eslint-config-prettier 关闭 ESLint 中与 Prettier 冲突的规则,eslint-plugin-prettier 把 Prettier 当作 ESLint 的一条规则来运行(推荐方式)

配置 ESLint 使用 Prettier

在项目根目录创建或修改 .eslintrc.js(或其他格式),确保包含以下核心配置:

module.exports = {
  extends: [
    'eslint:recommended',
    'plugin:prettier/recommended' // 这行会自动启用 eslint-plugin-prettier 并关闭冲突规则
  ],
  plugins: ['prettier'],
  rules: {
    'prettier/prettier': 'error' // 把 Prettier 错误作为 ESLint 错误提示
  }
};

⚠️ 注意:plugin:prettier/recommended 已内置 eslint-config-prettier,无需再单独 extend 它。

设置 VSCode 自动保存时格式化

打开 VSCode 设置(Ctrl+,Cmd+,),搜索并勾选:

  • Format On Save:保存时自动格式化
  • Default Formatter:设为 esbenp.prettier-vscode(但注意:若同时启用了 ESLint 的“自动修复”功能,优先用 ESLint 驱动格式化更稳妥)

更推荐的方式是:在项目根目录添加 .vscode/settings.json,精准控制当前项目行为:

{
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  "eslint.validate": ["javascript", "typescript", "vue"]
}

这样保存时先由 ESLint 自动修复(含 Prettier 格式化),再触发格式化动作,逻辑更可靠。

可选:添加 .prettierrc 配置文件

如果需要自定义 Prettier 行为(比如单引号、分号、箭头函数括号),在根目录加 .prettierrc

{
  "singleQuote": true,
  "semi": false,
  "arrowParens": "avoid",
  "tabWidth": 2
}

该文件会被 Prettier 和 eslint-plugin-prettier 共同读取,保持一致。

基本上就这些。配置完成重启 VSCode,打开 JS/TS 文件,保存即生效。不复杂但容易忽略的是:别让 Prettier 和 ESLint 规则互相覆盖,靠 eslint-plugin-prettier 统一入口最稳。


# vue  # javascript  # java  # vscode  # js  # json  # typescript  # npm  # 配置文件  # format  # var 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: linux top下的 minerd 木马清除方法  网页设计与网站制作内容,怎样注册网站?  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  PythonWeb开发入门教程_Flask快速构建Web应用  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  如何用搬瓦工VPS快速搭建个人网站?  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  网站制作壁纸教程视频,电脑壁纸网站?  ,怎么在广州志愿者网站注册?  Android滚轮选择时间控件使用详解  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  如何用腾讯建站主机快速创建免费网站?  javascript中的try catch异常捕获机制用法分析  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  如何确保FTP站点访问权限与数据传输安全?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  Laravel如何使用.env文件管理环境变量?(最佳实践)  Android 常见的图片加载框架详细介绍  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  Laravel如何为API编写文档_Laravel API文档生成与维护方法  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  Laravel如何保护应用免受CSRF攻击?(原理和示例)  Laravel如何实现多对多模型关联?(Eloquent教程)  Laravel如何实现用户密码重置功能?(完整流程代码)  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  JavaScript如何实现音频处理_Web Audio API如何工作?  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  EditPlus中的正则表达式 实战(1)  教你用AI润色文章,让你的文字表达更专业  Laravel如何处理CORS跨域请求?(配置示例)  如何基于云服务器快速搭建网站及云盘系统?  Laravel API资源类怎么用_Laravel API Resource数据转换  在线教育网站制作平台,山西立德教育官网?  如何做网站制作流程,*游戏网站怎么搭建?  中山网站推广排名,中山信息港登录入口?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  香港服务器网站卡顿?如何解决网络延迟与负载问题?  Laravel如何实现本地化和多语言支持?(i18n教程)  清除minerd进程的简单方法