VSCode中 Eslint 和 Prettier 冲突问题最新解决方法

 更新时间:2023年02月23日 17:13:19   作者:weetch  
这篇文章主要介绍了VSCode中 Eslint和Prettier冲突问题,既然使用 eslint规范,我的理解上当然是不能去修改eslint,因为这是共用规范,修改了就没有再使用的必要了,所以我是不推荐修改eslint的方式,本文给结合实例代码给大家详细讲解,需要的朋友可以参考下

前言

本次环境皆为 @vue/cli默认安装带有的 eslint@7.32.0VSCode 插件版本:

  • Eslint v2.4.0
  • Prettier v9.10.4

为什么会冲突

首先我们需要知道为什么使用EslintPrettier,下面先介绍两者的单独用法

Eslint

Javascript Vue Typescript 等文件的代码规范检测工具,当代码写法不符合时,会在终端进行报错提醒,阻止你的serve服务。为了在 VSCode 中检测到我们代码不规范时,能自动修复错误写法,我们需要安装 VSCode 的插件 ESLint

image.png


安装后在 setting.json 中配置如下并重启编辑器:

{
	"editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
	}
}

之后再编写 js等文件保存时都会自动格式化,保证 Eslint再也不会报错

Prettier

一种规范化的写法规则,包含各种类型文件,其中部分Javascript 等规则,会和 Eslint不一样,使用时只要在VSCode 中安装Prettier插件即可

image.png

安装后在 setting.json 中配置如下并重启编辑器:

{
	"editor.formatOnSave": true,
	"editor.defaultFormatter": "esbenp.prettier-vscode",
}

表示所有类型的文件的格式化都使用 Prettier

冲突

如果两者都启用,则因为规则冲突,在JS等文件中,会出现保存时,先运行了ESLint,然后再运行了 Prettier,导致 @eslint检测依然报错

解决

既然使用 eslint规范,我的理解上当然是不能去修改eslint,因为这是共用规范,修改了就没有再使用的必要了,所以我是不推荐修改eslint的方式。

我的做法也很简单,在eslint作用的文件类型中,继续使用eslint进行格式化,在其他类型文件中,使用prettier进行格式化

eslint继续使用 codeActionsOnSave进行设置,把 eslint作用范围的文件类型的formatOnSave关闭

{
  "editor.tabSize": 2,
	// 开启eslint
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
	},
  // 开启自动格式化
  "editor.formatOnSave": true,
  // 设置所有文件默认格式化工具为prettier
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  // eslint范围内的文件类型,关闭保存时格式化
  "[javascript]": { 
    "editor.formatOnSave": false
  },
  "[typescript]": { 
    "editor.formatOnSave": false
  },
  "[vue]": {
    "editor.formatOnSave": false
  },
  "[javascriptreact]": {
    "editor.formatOnSave": false
  }
}

到此这篇关于VSCode如何保证 Eslint 和 Prettier 不冲突的文章就介绍到这了,更多相关VSCode内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaScript数组和对象的复制

    JavaScript数组和对象的复制

    本篇文章主要介绍了JavaScript数组和对象的复制的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • 基于JavaScript实现幸运抽奖页面

    基于JavaScript实现幸运抽奖页面

    这篇文章主要为大家详细介绍了基于JavaScript实现幸运抽奖页面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • JavaScript表单验证实现代码

    JavaScript表单验证实现代码

    这篇文章主要为大家详细介绍了JavaScript表单验证的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 解决给dom元素绑定click等事件无效问题的方法

    解决给dom元素绑定click等事件无效问题的方法

    本文主要介绍了解决给dom元素绑定click等事件无效问题的方法。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • JS验证有效性示例

    JS验证有效性示例

    有效性验证的方法有很多,在本文将为大家介绍下如何使用js简单实现下,感兴趣的朋友可以参考下
    2013-10-10
  • javascript数组克隆简单实现方法

    javascript数组克隆简单实现方法

    这篇文章主要介绍了javascript数组克隆简单实现方法,实例分析了JavaScript中concat用于数组克隆的使用技巧,需要的朋友可以参考下
    2015-12-12
  • 利用原生js模拟直播弹幕滚动效果

    利用原生js模拟直播弹幕滚动效果

    弹幕是一个很常见的功能,这篇文章主要给大家介绍了关于如何利用原生js模拟直播弹幕滚动效果的相关资料,文章通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-07-07
  • js前端面试之同步与异步问题详解

    js前端面试之同步与异步问题详解

    这篇文章主要给大家介绍了关于js前端面试之同步与异步问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用js具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • {}与function(){}选用空对象{}来存放keyValue

    {}与function(){}选用空对象{}来存放keyValue

    虽说js里面什么都能当对象,也能用填鸭式方法任意给对象添加属性,属性赋值.但是有些js内置的对象,类型属性也是没办法覆盖的
    2012-05-05
  • 一段利用WSH获取登录时间的jscript代码

    一段利用WSH获取登录时间的jscript代码

    用jscript实现获取登录时间的脚本
    2008-05-05

最新评论