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

目录
  • 前言
  • 为什么会冲突
    • Eslint
    • Prettier
    • 冲突
  • 解决

前言

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

  • Eslint v2.4.0
  • Prettier v9.10.4

为什么会冲突

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

Eslint

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

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

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

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

Prettier

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

安装后在 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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • PHP中__autoload和Smarty冲突的简单解决方法

    本文讲述了PHP中__autoload和Smarty冲突的简单解决方法.分享给大家供大家参考,具体如下: 一.问题: 最近,在项目中发现,PHP 的 __autoload 方法失效了.调试了好久,百思不得其解,查了下资料才知道原来是 Smarty 的原因.新版的 Smarty 改变了autoload的方式. 二.解决方法: 在 Smarty 的包含类文件后加一段代码,spl_autoload_register("__autoload"); 如下: <?php define('RO

  • VScode中使用Cmake遇到的问题及其解决方法(推荐)

    VS code配置步骤先按照网上的方法完成,大概就是安装mingw,cmake,VS code,然后安装VS code中的插件: 安装好之后,新建文件夹/项目如下: 其中,build是打开文件夹以后自动生成的.test中是源文件还有项目文件等. 打开终端(可以是powershell,也可以是vscode中的终端),进入到build中,使用 cmake -G "MinGW Makefiles" .. 其中的 MinGW Makefiles 可以修改成其他的编译选项.根据错误的提示来选择就

  • php5.3中ZendGuardLoader与wincache冲突问题的解决方法

    windows环境下,php5.3版本同时开始ZendGuardLoader和wincache的话,会导致zend加密过的部分文件会无法正常运行,提示"Zend Guard Run-time support missing!". 问题重现:从应用中心安装需要zend支持的插件时,校验文件(经过zend加密过的单一文件)正常,也能通过应用中的校验并下载插件,但在安装插件时就会出现上面说到那些提示. 问题分析:zend与wincache冲突 解决方法: 关于wincache: 在php.i

  • VScode中C++头文件问题的终极解决方法详析

    目录 引言 局部配置全局配置傻傻分不清楚 一些有帮助的信息 总结 引言 之前在配置VScode环境的时候,按照网上的文章配置,总是找不到头文件,搜索解决方案,都是千篇一律,没有说到重点.在此详细解释一下. 局部配置全局配置傻傻分不清楚 网上很多文章都在讲一个配置文件c_cpp_properties.json,但是有些人不知道什么原因是找不到这个配置文件的.在扩展面板中,点击C++的设置进入的页面其实是通用设置页面,大概长这样: 这里只能看到"在settings.json中编辑"的选项,

  • vscode 配置eslint和prettier正确方法

    ESlint ESLint 是一款语法检测工具.因为 JavaScript 本身是一门灵活的动态语言,一千个 JavaScriptor 就有一千种写法.为了方便人们的理解,快速上手别人的代码. 说明 在开发项目的时候,往往会通过eslint来检查代码格式,而prettier用来进行代码的格式化.本篇博文主要是记录使用vscode开发vue项目时的eslint和prettier的配置. vscode 安装插件 首先,需要在vscode上安装eslint和prettier的插件. 项目中的配置文件

  • VSCode中ESLint插件修复以及配置教程

    目录 vscode+eslint插件+配置教程 如果不好用 排查1: 如果出现后面回车符问题 排查2: 保存时好了但是一瞬间代码又回来了 排查3: 右下角是否开启eslint服务 排查4: 如果保存还是变回去了 排查5: ESLint不生效 排查6: 如果都用心走了一遍, 还不行 总结 vscode+eslint插件+配置教程 1.打开项目, 必须让Vscode左侧工作区根目录是项目文件夹, 确保根目录下(第一级)有eslintrc.js / package.json中有eslint相关配置.

  • Android 中ScrollView与ListView冲突问题的解决办法

    Android 中ScrollView与ListView冲突问题的解决办法 自定义MyListView public class MyListView extends ListView { public MyListView(Context context) { super(context); // TODO Auto-generated constructor stub } public MyListView(Context context, AttributeSet attrs) { sup

  • MacOS中 VSCode 安装 GO 插件失败问题的快速解决方法

    问题重现 Installing golang.org/x/tools/cmd/guru FAILED Installing golang.org/x/tools/cmd/gorename FAILED Installing golang.org/x/lint/golint FAILED Installing github.com/stamblerre/gocode FAILED 4 tools failed to install. VS COde 打开 .go 文件会自动安装插件,但是出现了一些

  • 在vscode中快速新建html文件的2种方法总结

    目录 在vscode中新建html文件的两种方法: 第一个方法: 第二个方法: 补充:想要快速打开HTML文件查看编辑效果 总结 在vscode中新建html文件的两种方法: 第一个方法: 1 点击菜单[文件],如图所示. 2 点击[新建文件],如图所示. 3 就会创建一个没有命名的文件,如图所示. 4 点击选择语言开始,会弹出选择语言模式,在自动检测的下拉菜单中选择html,一个没有命名的html文件就创建好了. 5 点击保存或者另存为,给没有命名的html起个名字,可以起字母,数字,中文,起

  • Django与Vue语法的冲突问题完美解决方法

    当我们在django web框架中,使用vue的时候,会遇到语法冲突. 因为vue使用{{}},而django也使用{{}},因此会冲突. 解决办法1: 在django1.5以后,加入了标签: {% verbatim myblock %} {% endverbatim myblock %} 被此标签包裹的代码将不会被Django的模板引擎渲染. 因此,我们可以把带有{{ }} 的Vue代码放在 {% verbatim myblock %}标签中间,例如: <div id="app1&quo

随机推荐