react项目中引入最新版本eslint

目的

  1. 我们讲eslint引入项目,无非就是让我们在写代码的过程当中,可以给我们一些友好的提示,来检查我们代码的书写合理性,以及一些代码书写习惯的统一;
  2. 最新版本9.x以上的eslint适配我们的项目

安装

# 通过eslint官方提供的脚手架安装
npm init @eslint/config
# 根据项目实际情况,选择出现的问候语

使用

上面命令跑完之后,你的项目根目录会多一个eslint.config.mjs文件这是我们本地的配置
生成的默认代码如下,

这个时候我们的项目文件已经支持了eslint检查,大家可以去看看(如果是ts文件的话,你会看到使用any类型的地方给出了eslint报错提示)

import globals from "globals"
import pluginJs from "@eslint/js"
import tseslint from "typescript-eslint"
import pluginReact from "eslint-plugin-react"export default [{ files: ["**/*.{js,mjs,cjs,ts,jsx,tsx}"] },{ languageOptions: { globals: globals.browser } },pluginJs.configs.recommended,...tseslint.configs.recommended,pluginReact.configs.flat.recommended,
];

eslint默认的配置,说几个对于我们来说比较隐形的配置

[// 默认给我们忽略了这些文件{ignores: ["**/node_modules/",".git/"]},{files: ["**/*.js", "**/*.mjs"]},// 默认配置了.cjs按照commonjs格式进行检测{files: ["**/*.cjs"],languageOptions: {sourceType: "commonjs",ecmaVersion: "latest"}}
]

比较明显的改动

  1. 默认不再支持,匹配模式的专用文件 .eslintignore。仅支持配置文件中配置的ignores和运行命令时添加的--ignore-pattern
    • 如果依然想支持,需要按照一下方式进行配置
// eslint.config.js
import { includeIgnoreFile } from "@eslint/compat";
import path from "node:path";
import { fileURLToPath } from "node:url";const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const gitignorePath = path.resolve(__dirname, ".gitignore");export default [includeIgnoreFile(gitignorePath),{// your overrides}
];
  1. --ext参数配置去掉,仅限 eslintrc 模式。9.x版本不再使用,我们eslint执行的范围,取决于我们配置的files范围
  2. 不再支持在package.json中进行配置eslint的相关配置了, 如之前的eslintConfig

新版本的命令配置

package.json文件

  • lint命令,已经不在需要手动配置–ext指定检查文件的格式和对应目录,迁移到了配置文件eslint.config.mjs
    • 也就是上述默认生成的文件中,files这个配置
  • fix:lint, 依然可以用–fix参数
{..."scripts": {"lint": "eslint . --color","fix:lint": "eslint . --fix"},...
}

写在最后

本期最后,博主直接配上我自己项目的eslint.config.mjs配置, 以下添加的rules都是当eslint提示之后才会发现,不需要一个一个去熟悉,完全没必要的哈

import globals from "globals";
import pluginJs from "@eslint/js";
import tsEslint from "typescript-eslint";
import pluginReact from "eslint-plugin-react";export default [{files: ["**/*.{js,mjs,cjs,ts,jsx,tsx}"],},{ languageOptions: { globals: globals.browser } },pluginJs.configs.recommended,...tsEslint.configs.recommended,pluginReact.configs.flat.recommended,{rules: {/** 可以出现any类型 */"@typescript-eslint/no-explicit-any": "off",/** 需要分号 */semi: ["error", "always"],/** 可以使用require */'@typescript-eslint/no-require-imports': 'off',/** 可以用ts-ignore */'@typescript-eslint/ban-ts-comment': 'off',/*** 不检查以下划线开头的 未使用的变量 * 包含了参数变量,解构变量,catch中的参数变量*/'@typescript-eslint/no-unused-vars': ["error", { "argsIgnorePattern": "^_", "caughtErrorsIgnorePattern": "^_", "destructuredArrayIgnorePattern": "^_"  }]}},{ignores: ['config/','build/','public/','scripts/','mock/','.vscode/','src/utils/XMLToJson.js','**/*.test.js']}
];

如果本期的内容有帮助到大家,记得给博主点个赞,让博主开心开心,你们的支持是我持续更新和保证文章质量的动力!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/55146.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能辅助的神经康复

人工智能辅助的神经康复是通过应用人工智能(AI)技术来改善神经系统损伤患者的康复过程。此领域结合了深度学习、数据分析和机器人技术,旨在提升康复效果、个性化治疗方案和监测进展。以下是该领域的关键组成部分和应用: 1. 康复评…

计算机视觉实战项目4(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)

往期热门项目回顾: 计算机视觉项目大集合 改进的yolo目标检测-测距测速 路径规划算法 图像去雨去雾目标检测测距项目 交通标志识别项目 yolo系列-重磅yolov9界面-最新的yolo 姿态识别-3d姿态识别 深度学习小白学习路线 AI健身教练-引体向上-俯卧撑计数…

Python的异步编程

什么是协程? 协程不是计算机系统提供,程序员人为创造。 协程也可以被称为微线程,是一种用户态内的上下文切换技术。简而言之,其实就是通过一个线程实现代码块相互切换执行。 实现协程有那么几种方法: greenlet&…

Centos怎么执行脚本

方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本 cd /data/shell ./hello.sh 方法二:以绝对路径的方式去执行bash shell脚本 /data/shell/hello.sh 方法三:直接使用bash 或sh 来执行…

JDK9与JDK8对比

JDK 9 带来了很多显著的新特性,较早期的版本有了非常多的提升和优化。以下将以清晰的对比方式讲解 JDK 9 相比旧版本的优势,并通过实际示例展示如何利用新特性。 1. 模块化系统(Project Jigsaw) JDK 8 及之前: 所有的…

从 Oracle 集群到单节点环境(详细记录一次数据迁移过程)之二:生产服务器的备份操作

从 Oracle 集群到单节点环境(详细记录一次数据迁移过程)之二:生产服务器的备份操作 目录 从 Oracle 集群到单节点环境(详细记录一次数据迁移过程)之二:生产服务器的备份操作一、创建 pfile 文件二、创建备份…

CSS外边距

元素的外边距(margin)是围绕在元素边框以外(不包括边框)的空白区域,这片区域不受 background 属性的影响,始终是透明的。 为元素设置外边距 默认情况下如果不设置外边距属性,HTML 元素就是不会…

CSS 中 object-fit 的 cover 和 contain

前言&#xff1a;object-fit 属性用于指定可替换元素&#xff08;如<img>、<video>等&#xff09;如何适应其容器。 一、视觉效果 1. object-fit: cover 此值会使被替换元素完全覆盖容器&#xff0c;同时保持其宽高比。这意味着元素可能会被裁剪以适应容器的尺寸…

Linux shell编程学习笔记84:tee命令——显示保存两不误

0 引言 在前面的学习笔记中&#xff0c;我们经常使用echo命令和输出重定向来生成脚本文件或演示文件&#xff0c;其实Linux提供了一个可以从标准输入读取数据&#xff0c;并输出成文件的命令——tee。 1 tee命令 的帮助信息、功能、命令格式、选项和参数说明 1.1 tee命令 的…

OpenCV-指纹识别

文章目录 一、意义二、代码实现1.计算匹配点2.获取编号3.获取姓名4.主函数 三、总结 一、意义 使用OpenCV进行指纹识别是一个复杂且挑战性的任务&#xff0c;因为指纹识别通常需要高精度的特征提取和匹配算法。虽然OpenCV提供了多种图像处理和计算机视觉的工具&#xff0c;但直…

软件测试学习笔记丨Pytest 学习指南

本文转自测试人社区&#xff0c;原文链接&#xff1a;https://ceshiren.com/t/topic/32336 基本介绍 pytest框架是一个成熟&#xff0c;全面的测试框架&#xff0c;具有非常丰富的第三方插件&#xff0c;并且可以自定义扩展 比如&#xff1a;pytest-selenium , pytest-html ,…

MySQL高阶2004-职员招聘人数

目录 题目 准备数据 分析数据 实现 题目 一家公司想雇佣新员工。公司的工资预算是 70000 美元。公司的招聘标准是&#xff1a; 雇佣最多的高级员工。在雇佣最多的高级员工后&#xff0c;使用剩余预算雇佣最多的初级员工。 编写一个SQL查询&#xff0c;查找根据上述标准雇…

elasticsearch 写入新数据测试(二)

背景:elasticsearch单个node节点写入数据-CSDN博客 需要设置密码才能作为外部调用,不设置我不会用。设置方法见上一篇。 设置密码出现如下问题: Unexpected response code [503] from calling PUT http://172.19.0.1:9200/_security/user/apm_system/_password?pretty …

net core mvc 数据绑定 《1》

其它的绑定 跟net mvc 一样 》》MVC core 、framework 一样 1 模型绑定数组类型 2 模型绑定集合类型 3 模型绑定复杂的集合类型 4 模型绑定源 》》》》 模型绑定 使用输入数据的原生请求集合是可以工作的【request[],Querystring,request.from[]】&#xff0c; 但是从可读…

unity一键注释日志和反注释日志

开发背景&#xff1a;游戏中日志也是很大的开销&#xff0c;虽然有些日志不打印但是毕竟有字符串的开销&#xff0c;甚至有字符串拼接的开销&#xff0c;有些还有装箱和拆箱的开销&#xff0c;比如Debug.Log(1) 这种 因此需要注释掉&#xff0c;当然还需要提供反注释的功能&am…

ide 使用技巧与插件推荐

ide 使用技巧与插件推荐 一、IDE 使用技巧 1. 快捷键 掌握常用快捷键&#xff1a; Windows: 使用 Ctrl、Alt 和 Shift 的组合。 Mac: 使用 Cmd、Option 和 Shift。 常用快捷键示例&#xff1a; VS Code: Ctrl P: 快速打开文件。 Ctrl Shift P: 打开命令面板。 Ctrl /…

前端 vue3 对接科大讯飞的语音在线合成API

主要的功能就是将文本转为语音&#xff0c;可以播放。 看了看官方提供的demo&#xff0c;嗯....没看懂。最后还是去网上找的。 网上提供的案例&#xff0c;很多都是有局限性的&#xff0c;我找的那个他只能读取第一段数据&#xff0c;剩下的不读取。 科大讯飞的接口&#xf…

监控告警功能详细介绍及操作演示:运维团队的智能保障

在当今这个信息化高速发展的时代&#xff0c;运维团队面临着前所未有的挑战。为了确保系统的稳定性和高效运维&#xff0c;监控告警功能成为了运维团队不可或缺的得力助手。本文将详细介绍我们的监控告警功能&#xff0c;并结合实际操作页面进行演示&#xff0c;帮助运维团队更…

25中国烟草校园招聘面试问题总结 烟草面试全流程及面试攻略

开头附上工作招聘面试必备问题噢~~包括综合面试题、无领导小组面试题资源文件免费&#xff01;全文干货。 工作招聘无领导小组面试全攻略最常见面试题&#xff08;第一部分&#xff09;共有17章可用于国企私企合资企业工作招聘面试面试必备心得面试总结资源-CSDN文库https://d…

springboot整合seata

一、准备 docker部署seata-server 1.5.2参考&#xff1a;docker安装各个组件的命令 二、springboot集成seata 2.1 引入依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-seata</artifactId>&…