搭配使用 ESLint 和 Prettier 优化代码风格和质量

embedded/2024/12/23 7:12:38/

前端开发中,保持一致的代码风格和高质量的代码至关重要。ESLint 和 Prettier 是两个流行的工具,分别用于代码质量检测和代码格式化。然而,如何将这两个工具搭配使用,使它们相辅相成,是许多开发者关注的问题。本文将详细介绍 ESLint 和 Prettier 的基本使用方法以及如何将它们无缝集成在一起。

1. 什么是 ESLint 和 Prettier?

  • ESLint:一个强大的 JavaScript 代码分析工具,主要用于发现代码中的问题和潜在错误。ESLint 通过定义和遵循一套规则,可以帮助开发者编写更高质量的代码。

  • Prettier:一个“固执”的代码格式化工具,能够自动将代码格式化为一致的风格。Prettier 不会检查代码质量,而是专注于代码的外观,使代码更具可读性。

2. 为什么要一起使用 ESLint 和 Prettier?

虽然 ESLint 和 Prettier 各自功能强大,但它们在一起使用时能实现代码风格和代码质量的双重保障。具体来说:

  • ESLint 侧重于代码质量,包括变量的使用、逻辑错误、潜在的语法问题等。
  • Prettier 侧重于代码格式化,确保代码在任何地方看起来都是一致的。

然而,ESLint 和 Prettier 在格式化规则上可能会有冲突,因此需要一些额外的配置来让它们和谐共处。

3. 安装和配置 ESLint 与 Prettier

3.1 安装依赖

首先,需要安装 ESLint、Prettier 以及它们的集成插件。你可以通过 npm 或 yarn 来安装这些依赖。

使用 npm:

npm install eslint prettier eslint-config-prettier eslint-plugin-prettier --save-dev

使用 yarn:

yarn add eslint prettier eslint-config-prettier eslint-plugin-prettier -D

3.2 初始化 ESLint

在项目根目录下运行以下命令来初始化 ESLint:

npx eslint --init

根据提示选择合适的配置选项,例如使用 JavaScript 还是 TypeScript,运行环境(浏览器、Node.js),以及你是否需要使用 Prettier。

3.3 配置 ESLint 和 Prettier

在项目根目录创建或更新 .eslintrc.json 配置文件,并将 Prettier 插件添加到 ESLint 的配置中:

{"env": {"browser": true,"es2021": true},"extends": ["eslint:recommended","plugin:prettier/recommended"],"plugins": ["prettier"],"rules": {"prettier/prettier": "error"}
}

3.4 配置 Prettier

在项目根目录创建一个 .prettierrc 文件,用于配置 Prettier 的规则:

{"singleQuote": true,"trailingComma": "es5","tabWidth": 2,"semi": true
}

3.5 禁用 ESLint 中的格式化规则

为了避免 ESLint 和 Prettier 之间的冲突,可以使用 eslint-config-prettier 来禁用所有与格式相关的 ESLint 规则。这样 ESLint 将专注于代码质量,而 Prettier 负责格式化。

你只需要在 extends 中添加 "eslint-config-prettier" 即可:

{"extends": ["eslint:recommended", "plugin:prettier/recommended"]
}

4. 使用 ESLint 和 Prettier

4.1 运行 ESLint

你可以在命令行中运行 ESLint 来检查代码质量:

npx eslint . --fix

--fix 选项会自动修复能够修复的问题。

4.2 使用 Prettier 格式化代码

你可以在命令行中运行 Prettier 来格式化代码:

npx prettier --write .

这将会格式化项目中的所有代码文件。

4.3 在 IDE 中集成

为了提高开发效率,可以在 IDE(如 VSCode)中集成 ESLint 和 Prettier。你可以安装相应的插件,如 ESLint 和 Prettier - Code Formatter 插件,并配置自动修复和格式化选项。


http://www.ppmy.cn/embedded/100572.html

相关文章

ReactRouter6快速入门教程

快速入门案例 main.ts import { createRoot } from "react-dom/client" import App from "./App.tsx" import { BrowserRouter, Route, Routes } from "react-router-dom"function Hello() {return <h2>hello页面</h2> }createRoo…

信创海光x86服务器,定义、特点及应用详解

信创海光x86服务器是中国近年来在信息技术领域努力实现自主可控的成果之一&#xff0c;旨在打破国外技术封锁和限制&#xff0c;这类服务器的核心特点基于x86架构&#xff0c;这是一种广泛应用于全球的微处理器架构&#xff0c;由英特尔公司最初设计&#xff0c;海光作为国产处…

基于Spring Boot的文字识别系统

前端使用htmlcssjs&#xff0c;后端使用Spring Boot&#xff0c;数据库使用mysql&#xff0c;识别算法有两个&#xff0c;一个是使用百度OCR接口&#xff0c;一个是自己写一个python&#xff0c;用flask包装。 其中百度OCR接口可以去免费申请&#xff0c;然后把appid、apikey、…

Towards Enriched Controllability for Educational Question Generation

文章目录 题目摘要引言生成显式和隐式问题实验设置结果基线结论 题目 迈向教育问题生成的丰富可控性 论文地址:https://arxiv.org/abs/2306.14917 摘要 问题生成 (QG) 是自然语言处理 (NLP) 中的一项任务&#xff0c;涉及根据输入自动生成问题&#xff0c;输入通常由文本和目标…

加密与安全_解密AES加密中的IV和Seed

文章目录 概述IV&#xff08;Initialization Vector&#xff0c;初始化向量&#xff09;Seed&#xff08;种子&#xff09; CodeseedIV 小结 概述 在AES加密中&#xff0c;**IV&#xff08;Initialization Vector&#xff0c;初始化向量&#xff09;和Seed&#xff08;种子&am…

pwm子系统

一、系统框架 内核的PWM core&#xff0c;向下对实际pwm控制器驱动&#xff0c;提供了pwm_chip,soc厂商编程控制器驱动&#xff0c;只需注册结构体&#xff0c;配置好private_data&#xff0c;实例化pwm_ops操作&#xff0c;编写具体函数即可。 向上为其他驱动调用提供了统一的…

【YOLO家族】Scaled-YOLOv4, Optimal Speed and Accuracy of Object Detection,CVPR 2021

资源 论文题目《YOLOv4: Optimal Speed and Accuracy of Object Detection》 论文地址&#xff1a;https://arxiv.org/abs/2004.10934 论文代码&#xff1a;https://github.com/AlexeyAB/darknet 作者&#xff1a;AlexeyAB 论文链接&#xff1a;https://arxiv.org/pdf/2004.10…

如何使用ssm实现在线作业管理系统的设计与实现+vue

TOC ssm182在线作业管理系统的设计与实现vue 绪论 1.1 选题背景 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。计算机软件可以针对不同行业的营业特…