【开发问题记录】eslint9 中 eslint 和 prettier冲突

devtools/2024/12/28 1:55:15/

文章目录

    • 1、引言
    • 2、问题复现
    • 3、问题修复
    • 4、注意
    • 5、eslint-plugin-prettier/recommended 与自己的默认规则,冲突解决

1、引言

eslintprettier 这俩都是在前端工程化中不可缺少的东西,但这俩,在一块运行的时候,总会有点问题

Eslint功能

  • 对js语法检测、限制和修复
  • 对代码风格进行格式化,不能对css、less等格式化

Prettier

  • Prettier不可以对任何语法检测、限制和修复
  • 但是可以 美化很多格式的代码,包括js、jsx、ts、json、css、less、scss、html、vue

这俩就会重叠的地方, 语法检测、限制、修复

2、问题复现

eslint 的版本如下

"eslint": "^9.14.0",

在工程化项目中,安装了 eslintprettier , 在 prettier 中开启,字符串用单引号的规则;在 eslint 中 开启,字符串用 双引号的规则

…prettierrc 文件内容

"singleQuote": true, 核心是这个,字符串开启单引号

{"useTabs": false,"tabWidth": 2,"printWidth": 80,"singleQuote": true,"trailingComma": "none","bracketSpacing": true,"semi": false
}

eslint.config.js 文件内容

import globals from 'globals'
import pluginJs from '@eslint/js'
import tseslint from 'typescript-eslint'
import pluginVue from 'eslint-plugin-vue'/** @type {import('eslint').Linter.Config[]} */
export default [{ files: ['**/*.{js,mjs,cjs,ts,vue}'] },{ languageOptions: { globals: { ...globals.browser, ...globals.node } } },// js 推荐的配置pluginJs.configs.recommended,// ts 推荐的配置...tseslint.configs.recommended,...pluginVue.configs['flat/essential'],{files: ['**/*.vue'],languageOptions: { parserOptions: { parser: tseslint.parser } }},{rules: {'no-console': 'error','@typescript-eslint/no-unused-vars': 'error','vue/multi-word-component-names': 'off', // 关闭 vue组件名称必须是多词的校验'@typescript-eslint/no-explicit-any': 'off', // 关闭 不能出现 any 校验quotes: ['error', 'double']}}
]

这个时候就会出现问题,到底是以 eslint 为准 还是以 prettier 为准呢

在这里插入图片描述

3、问题修复

  1. eslint-config-prettier :这是一个 ESLint 配置规则的包,它将关闭与 Prettier 冲突的 ESLint 规则。

  2. eslint-plugin-prettier :这是一个 ESLint 插件,它将 Prettier 应用到 ESLint 中。它会使用 Prettier 来格式化代码,并将格式化结果作为 ESLint 的一项规则来检查代码。使用 eslint-plugin-prettier 可以在代码检查的同时,自动格式化代码,使其符合 Prettier 的规则。

保存的时候,其实会用 prettier 美化代码,然后就导致,eslint 的 双引号报错

1、安装 eslint-plugin-prettier

pnpm add eslint-plugin-prettier -D

2、修改 eslint.config.js 配置文件
在这里插入图片描述

import eslintPluginPrettier from 'eslint-plugin-prettier/recommended'eslintPluginPrettier, // 解决 prettier 和 eslint 的冲突,比如 eslint 里面是 开启 双引号,prettier 里面开启单引号

主要是增加这两行

3、在根目录新增 prettier.config.js 文件,把 prettier 的配置信息放到里面去

export default {useTabs: false,tabWidth: 2,printWidth: 80,singleQuote: true,trailingComma: 'none',bracketSpacing: true,semi: false
}

然后重启 vscode 这个时候没报错了

4、注意

如若 想要执行 pnpm exec eslint --fix 可能会有一个报错 eslint-config-prettier 找不到,还需要安装一下这个,因为在 eslint-plugin-prettier 包里面用到了

pnpm add eslint-config-prettier -D

在这里插入图片描述

在这里插入图片描述

5、eslint-plugin-prettier/recommended 与自己的默认规则,冲突解决

这个好像并且不是这个问题,重启一下vscode 就好了,不用再添加 rules 了

比如我设置了,'no-console': 'error', , 但是下面的 eslintPluginPrettier 的会覆盖 上的 ‘no-console’ ,就导致 这个 no-console 的配置没有生效,所以需要 在下面继续新增一个 rules

在这里插入图片描述

在这里插入图片描述


http://www.ppmy.cn/devtools/145983.html

相关文章

TP5 动态渲染多个Layui表格并批量打印所有表格

记录: TP5 动态渲染多个Layui表格每个表格设置有2行表头,并且第一行表头在页面完成后动态渲染显示内容每个表格下面显示统计信息可点击字段排序一次打印页面上的所有表格打印页面上多个table时,让每个table单独一页 后端代码示例: /*** Nod…

每天40分玩转Django:Django表单集

Django表单集 一、今日学习内容概述 学习模块重要程度主要内容表单集基础⭐⭐⭐⭐⭐表单集定义、基本用法内联表单集⭐⭐⭐⭐⭐内联表单、关联数据表单集验证⭐⭐⭐⭐自定义验证、错误处理动态表单集⭐⭐⭐⭐动态添加删除表单 二、基本模型定义 # models.py from django.db…

21天掌握JavaWeb - 第17天:前端页面开发与集成测试

目标 在本章节中,我们将学习如何根据后端API编写前端页面,并进行集成测试以确保前后端功能正常。 前端页面开发 核心概念 前端页面开发通常涉及HTML、CSS和JavaScript的使用,以构建用户界面和交互逻辑。 优势 用户体验:良好…

渗透测试发现漏洞产生原因以及解决方法|网络安全|渗透测试服务

渗透测试发现的问题 SQL注入攻击 原因 后端数据库过于信任前端传入数据 攻击方式: 通过前端输入相关SQL语句,使得后端数据库执行,套取数据库中的关键信息 解决方法: 对于前端传来的数据不直接进行操作数据库,而…

最长公共子序列【东北大学oj数据结构10-3】C++

题面 对于给定两个序列 X 和 Y , 序列 Z 是 X 和 Y 的公共子序列是指如果 Z 同时是 X 和 Y 的子序列。 例如:如果 X {a, b, c, b, d, a, b} 和 Y {b, d, c, a, b, a} , 那么序列 {b, c, a} 是 X 和 Y 的一个公共子序列。 但是序列 { b , c, a } 不是 X 和 Y 的最…

centos单机部署seata

文章目录 场景分析下载seata包启动 场景 centos7.9 jdk17 安装部署seata 分析 jdk和seata的版本对应关系如图 JDK版本 推荐 Seata 版本 理由 JDK 8 任何 Seata 版本 JDK 8 是 Seata 长期支持的版本,兼容性最好。 JDK 11 Seata 1.2.0 适合需要长期支持且性能较高的应…

如何永久解决Apache Struts文件上传漏洞

Apache Struts又双叒叕爆文件上传漏洞了。 自Apache Struts框架发布以来,就存在多个版本的漏洞,其中一些漏洞涉及到文件上传功能。这些漏洞可能允许攻击者通过构造特定的请求来绕过安全限制,从而上传恶意文件。虽然每次官方都发布补丁进行修…

RCE 命令执行漏洞 过滤模式 基本的过滤问题 联合ctf题目进行实践

前言 知道RCE 命令执行分为 代码执行 和 命令执行 原理 : 就是用户的输入被当做命令或者代码执行了 从而造成了危害 代码执行 除了eval php代码执行漏洞的函数还有 eval()、a ssert()、 preg_replace()、 create_function()、 array_map()、 call_user_func(…