新闻中心

代码规范:ESLint配置与Prettier格式化

2025-11-22
浏览次数:
返回列表
ESLint 与 Prettier 结合可统一代码风格并提升质量。1. ESLint 检测代码问题,通过 .eslintrc.js 配置环境、规则、插件等;2. Prettier 负责格式化,通过 .prettierrc 定义缩进、引号、分号等样式;3. 使用 eslint-config-prettier 禁用冲突规则,eslint-plugin-prettier 将 Prettier 作为 ESLint 规则;4. 集成到编辑器(如 VS Code)实现保存自动修复;5. 配置 npm 脚本进行 lint 和 format;6. 结合 Husky + lint-staged 在提交前自动校验,确保代码规范落地。

代码规范:eslint配置与prettier格式化

在现代前端开发中,保持代码的一致性和可读性至关重要。ESLint 和 Prettier 是两个广泛使用的工具:ESLint 用于检测代码中的潜在问题并 enforce 编码规范,Prettier 则专注于代码格式化。将两者结合使用,可以实现既严格又统一的代码风格。

ESLint 配置详解

ESLint 能帮助开发者发现代码中的错误、不规范写法和潜在 bug。一个典型的 ESLint 配置文件(.eslintrc.js)通常包括以下几个部分:

  • env:指定代码运行环境,如浏览器、Node.js 等,以便识别全局变量
  • extends:继承已有的规则集,比如推荐配置或第三方规范(如 airbnb、standard)
  • plugins:引入额外的插件,如 react、vue、import 等
  • rules:自定义具体规则的开启/关闭及严重程度("error"、"warn"、"off")
  • parserOptions:指定语法解析选项,如支持 ES2025、JSX、TypeScript 等
示例配置:
module.exports = {
  env: {
    browser: true,
    es2025: true,
    node: true,
  },
  extends: [
    'eslint:recommended',
    'plugin:react/recommended'
  ],
  parserOptions: {
    ecmaVersion: 'latest',
    sourceType: 'module',
    ecmaFeatures: {
      jsx: true
    }
  },
  plugins: ['react'],
  rules: {
    'no-console': 'warn',
    'eqeqeq': ['error', 'always'],
    'semi': ['error', 'never']
  },
  settings: {
    react: {
      version: 'detect'
    }
  }
};

Prettier 基础配置

Prettier 是一个“开箱即用”的代码格式化工具,它会强制统一代码样式,减少团队间的格式争议。其核心配置通过 .prettierrc 文件定义。

  • semi:是否在语句末尾加分号
  • singleQuote:是否使用单引号代替双引号
  • tabWidth:缩进空格数
  • useTabs:是否使用制表符而非空格
  • printWidth:每行最大长度,超过则换行
  • trailingComma:对象或多参数末尾是否保留逗号
示例配置(.prettierrc):
{
  "semi": false,
  "singleQuote": true,
  "tabWidth": 2,
  "printWidth": 80,
  "trailingComma": "es5"
}

ESLint 与 Prettier 协同工作

直接同时启用 ESLint 和 Prettier 可能导致规则冲突(例如分号、引号)。为避免此类问题,建议使用 eslint-config-prettiereslint-plugin-prettier 进行整合。

  • eslint-config-prettier:关闭所有与 Prettier 冲突的 ESLint 规则
  • eslint-plugin-prettier:将 Prettier 作为 ESLint 规则运行,格式错误会在 ESLint 中提示
安装依赖:
npm install --s*e-dev eslint-config-prettier eslint-plugin-prettier prettier
更新 .eslintrc.js:
extends: [
  'eslint:recommended',
  'plugin:react/recommended',
  'prettier' // 关闭冲突规则
],
plugins: ['react', 'prettier'],
rules: {
  'prettier/prettier': 'error' // 启用 Prettier 格式检查
}

这样,ESLint 不仅检查代码质量,还会报告格式问题,统一通过编辑器或命令行修复。

citySHOP 多用户商城 citySHOP 多用户商城

citySHOP是一款集CMS、网店、商品、系统,管理更加科学快速;全新Jquery前端引擎;智能缓存、图表化的数据分析,手机短信营销;各种礼包设置、搭配购买、关联等进一步加强用户体验;任何功能及设置都高度自定义;MVC架构模式,代码严禁、规范;商品推荐、促销、礼包、折扣、换购等多种设置模式;商品五级分类,可自由设置分类属性;商品展示页简介大方,清晰,图片自动放大,无需重开页面;商品评价、咨询分开

citySHOP 多用户商城 15 查看详情 citySHOP 多用户商城

集成到开发环境

为了让规范真正落地,应将 ESLint 和 Prettier 集成到编辑器和项目流程中。

  • 在 VS Code 中安装 ESLintPrettier 插件,保存时自动格式化
  • 配置 .vscode/settings.json 实现保存时自动修复
  • 添加 npm 脚本进行批量检查与修复
package.json 示例脚本:
"scripts": {
  "lint": "eslint src/**/*.js",
  "lint:fix": "eslint src/**/*.js --fix",
  "format": "prettier --write src/**/*.{js,jsx,json}"
}

结合 Git Hooks(如 Husky + lint-staged),可在提交代码前自动校验和格式化,防止不符合规范的代码进入仓库。

基本上就这些。合理配置 ESLint 与 Prettier,不仅能提升代码质量,还能增强团队协作效率。关键是统一标准,并让工具自动执行,减少人为干预。不复杂但容易忽略。

以上就是代码规范:ESLint配置与Prettier格式化的详细内容,更多请关注其它相关文章!


# react  # 赛事营销推广调研报告  # 网站关键词排名费用多少  # 罗湖综合网站建设哪里好  # 西北关键词排名哪家好  # 网站外链推广  # 娇爽卫生巾营销推广手段  # 冒菜馆加盟seo网站  # 网站信息推广怎么做的呢  # 还能  # 运行环境  # 自动修复  # 几个  # 是一个  # 复用  # 全局变量  # 自定义  # 编辑器  # 多用户  # npm  # typescript  # node  # json  # git  # node.js  # 前端  # js  # vscode  # vue  # 昌吉网站建设哪家专业  # 丰泽区营销推广 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 如何在CSS中使用visited与link控制链接颜色_visited link伪类配合  谷歌浏览器最新官方入口链接 谷歌浏览器网页版官网导航  构建轻量级网站内部消息系统:Formspree 集成指南  css卡片内容溢出如何处理_使用overflow隐藏或scroll显示内容  Android Studio计算器C键功能异常排查与修复教程  HuggingFaceEmbeddings中向量嵌入维度调整的限制与理解  铃兰之剑为这和平的世界希里技能组及加点推荐  Surface怎么安装系统 微软Surface Pro U盘重装win11教程  抖音网页版企业服务中心登录入口_抖音网页版企业登录平台  MAC怎么让Dock栏只显示当前运行的应用_MAC终端命令实现极简Dock栏  在J*a里如何理解依赖关系的方向_依赖方向在模块结构中的作用  C++如何实现一个智能指针_手动实现C++ shared_ptr的引用计数功能  J*a实现学校排课程序_面向对象结构化项目示例  MAC怎么安装Homebrew包管理器_MAC为开发者和高级用户安装命令行工具  Spring Boot嵌入式服务器与J*a EE:功能支持深度解析  曝R星经典之作开发图 设计简陋但信息密集!  ExcelARRAYTOTEXT函数怎么自定义分隔符输出数组文本_ARRAYTOTEXT实现动态生成SQL语句  汽水音乐在线解析 汽水音乐在线解析入口  如何创建独立于主系统的J*a运行环境_隔离式环境搭建策略  解决Bootstrap卡片顶部边距导致背景图下移的问题  React Hooks最佳实践:动态组件状态管理的组件化方案  J*a应用程序首次运行自动创建文件与目录的最佳实践  R星幕后开发视频泄露 包含《GTA6》等多款大作  J*a编写用户注册与登录功能_掌握字符串与验证逻辑  免费抖音短视频入口_抖音网页版短视频免费通道  126邮箱账号注册 电脑版登录入口  漫蛙漫画官方主页入口 漫蛙MANWA网页直达访问链接  yy漫画网页版官方入口_yy漫画官网登录页面链接  谷歌google账号怎么注册账号 谷歌账号注册官方流程  包子漫画官方网站阅读入口-包子漫画在线漫画官网直达链接  Golang如何通过reflect操作map_Golang reflect map操作与遍历技巧  CSS子选择器:如何区分并样式化嵌套列表的子层级  文本文档写html代码怎么运行_文本文档html代码运行步骤【教程】  sublime怎么预览Markdown渲染效果_Markdown Preview插件 for sublime教程  Django AJAX 文件上传教程:解决图片无法保存到模型的常见问题  AI泡沫首次被“刺破”:GPU十年都无法存活!  Excel如何用迷你图显趋势_Excel用迷你图显趋势【趋势小图】  Android Studio计算器C键逻辑错误排查与修复:条件判断优化指南  在哪找SublimeJ远程工具_SFTP插件配置教程  顺丰快递查单号物流信息 顺丰快递小程序查询入口  Win11怎么设置开机NumLock亮 Win11修改注册表InitialKeyboardIndicators值  内存疯狂猛猛涨价:主板销量直接腰斩!  文心一言怎样用插件调度API数据_文心一言用插件调度API数据【API调用】  html怎么运行外部js文件中的函数_运html外js文件函数法【技巧】  CSS图片焦点样式实现教程:理解与应用tabindex属性  京东单号查询入口_京东快递订单追踪入口  漫蛙Manwa2官网入口地址分享 漫蛙漫画PC版永久访问通道  探索高级语言到原生C/C++的转译:挑战与内存管理策略  UC浏览器如何安装插件 UC浏览器添加扩展程序详细教程【进阶】  C++ map遍历方法大全_C++ map迭代器使用总结 

搜索