首页 > 其他分享 >[Tools] 集成ESLint与Prettier

[Tools] 集成ESLint与Prettier

时间:2025-01-21 13:42:30浏览次数:1  
标签:配置文件 Prettier Tools prettier ESLint true eslint

集成Prettier

目前我们所学习的两个工具:Pretter 和 ESLint,两者都有管理代码风格的功能,因此两者往往就会在代码风格的管理上面存在一些冲突。

例如举一个例子:

  • ESLint 配置了单引号规则
  • Prettier 配置了要使用双引号

那么现在假设你使用双引号,ESLint 会提示错误,然后我们将引号手动改为单引号,但是我们一格式化,因为会应用 Prettier 的格式化规则,又会被格式化为双引号,也就是说只要一格式化就会报错。

下面是一个具体的示例:

首先我们初始化了一个名为 eslint-prettier-demo 的项目,使用 pnpm init 进行一个初始化,之后分别安装 eslint 以及 prettier

接下来创建这两个工具的配置文件

prettier 配置文件:

{
  "singleQuote": true,
  "semi": false,
  "printWidth": 80,
  "trailingComma": "es5"
}

eslint 配置文件

module.exports = {
  env: {
    browser: true,
    es2021: true,
    node: true,
  },
  extends: 'eslint:recommended',
  parserOptions: {
    ecmaVersion: 12,
    sourceType: 'module',
  },
  rules: {
    indent: ['error', 2],
    quotes: ['error', 'double'],
    semi: ['error', 'always'],
  },
}

src/index.js

const str = 'Helo World'

const arr = [
  1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
  23, 24, 25, 26, 27, 28, 29, 30,
]

const obj = {
  name: 'John Doe',
  age: 30,
  address: {
    city: 'New York',
    state: 'NY',
  },
}

console.log(str)
console.log(arr)
console.log(obj)

此时,我们就会发现两份配置之间就存在了冲突。只要一格式化(prettier),eslint 就会报错。

为了解决这个问题,有两个思路:

  • 手动的将其中一个工具的配置文件进行修改,改成和另外一个工具的配置是相同的。这种方式肯定是没有问题的,但是缺点在于这种方式是手动的,如果涉及到大量的规则,那么手动操作比较繁琐
  • 使用一些插件来帮助我们解决这个
    • eslint-config-prettier 会关闭所有与 Prettier 冲突的 ESLint 规则
    • eslint-plugin-prettierPrettier 作为 ESLint 规则来运行,这样在运行 ESLint 时也会运行 Prettier

接下来我们来安装这两个插件:

pnpm add eslint-config-prettier eslint-plugin-prettier -D

之后修改 ESLint 的配置文件,代码如下:

module.exports = {
  env: {
    browser: true,
    es2021: true,
    node: true,
  },
  extends: ['eslint:recommended', 'plugin:prettier/recommended'],
  parserOptions: {
    ecmaVersion: 12,
    sourceType: 'module',
  },
  rules: {
    'prettier/prettier': [
      'warn',
      {
        semi: false,
      },
    ],
  },
}

在上面的配置文件中,我们在 extends 里面添加了一个 plugin:prettier/recommended 配置项目,该配置项表示应用 prettier 来作为 ESLint 的插件来运行,当遇到 ESLint 和 Prettier 冲突的规则的时候,关闭 ESLint 的然后用 Prettier 的。

我们也可以书写 rules,但是rules注意就不要再和 ESLint 冲突了,一般只修改规则的重要级别,不修改其他的配置项。

标签:配置文件,Prettier,Tools,prettier,ESLint,true,eslint
From: https://www.cnblogs.com/Answer1215/p/18683471

相关文章

  • [Tools] 自定义ESLint插件
    自定义ESLint插件ESLint插件主要是用来扩展ESLint本身没有的功能,这里包括扩展规则、扩展配置、扩展解析器。90%的ESLint插件都是以扩展规则为主,所以这些插件里面会包含大量的自定义规则。像这一类的插件,一般一条规则会对应一个JS文件,JS文件里面需要导出一个对象:module.expo......
  • KVM Management Tools: Command Line(CLI), virsh & virt-install (depends on QEMU li
    ManagementTools-KVMvirshAminimalshellaroundlibvirtformanagingVMsCLIActiveUses libvirtLGPL[root@wincarbonrgqancy]#virshlist VMM'ssupportingtools virt-install/clone/convertCommandlinetoolsforprovisioningnewVMs,c......
  • [Tools] SWC Intro
    SWCSWC英文全称为SpeedyWebCompiler,翻译成中文为“快速网页编译器”。官网地址:https://swc.rs/来看一下官方的介绍:SWCisanextensibleRust-basedplatformforthenextgenerationoffastdevelopertools.It'susedbytoolslikeNext.js,Parcel,andDeno,as......
  • ESLint修正代码规范错误
    ESLint手动修正代码规范错误ESLint是一个JavaScript代码规范的工具,可以帮助我们在编码过程中发现和修复代码规范错误。下面是一个例子,展示了如何手动修正一些常见的代码规范错误。代码实例:functionexample(){letx=1;//代码规范错误:使用了不必要的空格......
  • CheeseTools:红队内网横向
    免责声明仅限用于技术研究和获得正式授权的攻防项目,请使用者遵守《中华人民共和国网络安全法》,切勿用于任何非法活动,若将工具做其他用途,由使用者承担全部法律及连带责任,作者及发布者不承担任何法律连带责任项目介绍这个库是基于已经存在的MiscTool制作的,所以非常感谢rasta-mo......
  • Download the Vue Devtools extension for a better development experience/浏览器扩
    文章目录一、引言二、下载相关插件三、浏览器加载插件四、运行代码一、引言在做Vue项目的开发时,我们经常需要在页面上调试,若没有安装vue-devtools插件则肯能有以下报错。DownloadtheVueDevtoolsextensionforabetterdevelopmentexperience:https://githu......
  • macOS的PrivilegedHelperTools文件夹
    在 macOS 上,/Library/PrivilegedHelperTools 文件夹是一个特殊的位置,用于存放可以以更高权限运行的辅助工具或守护进程。这些工具通常由各种应用程序安装,以执行需要超出普通应用程序沙箱权限的任务,例如Proxy的应用,常见都是带有helper的应用。让我们更详细地了解这个目录及其用......
  • [1085] GitHub Resources and Tools
    Ref:AboutGitHubandGitAboutGitHubGitHubiscloud-basedplatformwhereyoucanstore,share,andworktogetherwithotherstowritecode.Storingyourcodeina"repository"onGitHuballowsyouto:Showcaseorshareyourwork.Trackand......
  • 集成CommitLInt+ESLint+Prettier+StyleLint+LintStaged
    ==代码可读性低代码====代码规范落地难====代码格式难统一====代码质量低下==配置ESLintESLint是一个用来识别ECMAScript并且按照规则给出报告的代码检测工具,使用它可以避免低级错误和统一代码的风格。它拥有以下功能:查出JavaScript代码语法问题。根据配置......
  • TypeScript使用utools进行数据存储
    使用TypeScript​当你需要在项目中使用TypeScript时,一般会遇到无法正常使用 utools 的API的情况。因此uTools官方推出了完整的类型定义文件,这份类型文件完整的列举了目前 utools 对象下所有的API,并会根据版本的迭代同步更新。utools-api-types​utools-api-types......