在vscode里配置ESLint和Prettier

文章目录

  • 在vscode里配置ESLint和Prettier
    • vscode插件和npm包区别
    • 解决ESLint和Prettier冲突
      • vscode环境
      • 非vscode环境
    • Vetur插件

使用vscode进行前端开发时,我们可能都安装了Prettier和ESLint插件,Prettier插件用来格式化代码,支持html、css(sass/less)、js和ts文件;ESLint则是用于代码质量检查,可以提示和更正代码错误,我主要是用在js和ts代码上;

但是,如果我们进行工程化开发的话,通常还会在项目里使用npm来安装ESLint或者Prettier依赖,那这两个npm包和相应的vscode插件,会有冲突吗?

vscode插件和npm包区别

我读了ESLint插件文档后,发现ESLint插件和ESLint npm包是相辅相成的,ESLint插件首先调用的,就是当前项目目录下的ESLint包,如果没有,就会去查找有没有全局安装的ESLint包。

所以,以ESLint为例,vscode插件和npm包的区别:

  • vscode中的ESLint插件,需要项目里或者全局安装ESLint包,插件检查代码时,还是在调用ESLint包来进行检查,然后将报错反馈给vscode,这样我们才能在vscode编辑器里,直接看到代码里的红色波浪线等错误提示;
  • 如果只安装了ESLintnpm包,没有安装ESLint插件,那在vscode中,代码不会有红色波浪线等警告提示,我们要进行代码质量检查的话,需要在终端里通过./node_modules/.bin/eslint xx.js命令,在终端中来查看xx.js文件的ESLint报错信息:
   1:22  error    Strings must use singlequote  quotes3:18  error    Strings must use singlequote  quotes8:16  error    Strings must use singlequote  quotes10:17  error    Strings must use singlequote  quotes10:33  error    Strings must use singlequote  quotes15:3   warning  Unexpected console statement  no-console✖ 6 problems (5 errors, 1 warning)5 errors and 0 warnings potentially fixable with the `--fix` option.

包括fix修复,也是在终端中输入命令来执行;

  • 两者相结合的话,我们就可以在vscode的settings.json中配置代码的“保存时格式化”和“保存时自动fix”等功能,这样书写代码时,编辑器会根据项目下的.eslintrc.js规则,实时给出lint提醒,并且在保存代码的时候,自动修复简单错误:
"[javascript]": {"editor.formatOnSave": true,"editor.formatOnPaste": true,"editor.codeActionsOnSave": {"source.fixAll.eslint": true}},

解决ESLint和Prettier冲突

首先,Prettier的vscode插件和npm包,区别和ESLint差不多,不同的地方在于,Prettier的Prettier插件里面本身捆绑了一个Prettier版本包,如果项目本地和全局都没装Prettier包的话,就会用这个捆绑包来解析,官方还是推荐在项目本地安装Prettier包,以供vscode插件调用。

vscode环境

如果是在vscode环境里同时使用Prettier和ESLint,像我就习惯用Prettier来格式化html、scss和jsx,用ESLint来检查js,那么就可以在vscode的settings.json里面,针对不同类型文件来配置规则:

"[html]": {"editor.defaultFormatter": "esbenp.prettier-vscode","editor.formatOnSave": true,"editor.formatOnPaste": true
},
"[scss]": {"editor.defaultFormatter": "esbenp.prettier-vscode","editor.formatOnSave": true,"editor.formatOnPaste": true
},

这里,我就指定了Prettier来格式化html和scss文件,配置文件的话,我习惯在项目里使用.eslintrc.js.prettierrc.js来分别进行格式配置。

非vscode环境

像我们协同开发的话,别人用的编辑器可能不是vscode,那就还是要靠ESLint和Prettier包来控制代码风格,那就可能会碰到ESLint和Prettier规则冲突的情况,可以通过安装eslint-config-prettier来解决冲突;

eslint-config-prettier是在碰到规则冲突时,以Prettier为准,安装完eslint-config-prettier后(npm install --save-dev eslint-config-prettier),在.eslintrc.jsextends字段里,进行声明:

{"extends": ["some-other-config-you-use",// 其他的一些eslint配置,比如"eslint:recommended""prettier"]
}

注意要把prettier放到最后,这样才能保证覆写。

Vetur插件

这里提一下vscode里的Vetur插件,如果大家用vscode开发Vue项目的话,可以安装Vetur插件,想详细了解该插件使用的话,可以去看下该插件的官方文档Vetur文档。

Vetur提供了对.vue文件的支持,提供了语法高亮和代码格式化;

比如一个新的vue组件,输入<v就会提示:

选择<vue> with default.vue,就能快速生成vue单文件组件的初始结构:

<template></template><script>
export default {}
</script><style></style>

Vetur也内嵌了很多格式化工具:

  • 内嵌了Prettier,可以在vscode的settings.json里,用vetur.format.defaultFormatter进行格式化指定:
{"vetur.format.defaultFormatter.html": "prettier","vetur.format.defaultFormatter.css": "prettier","vetur.format.defaultFormatter.scss": "prettier","vetur.format.defaultFormatter.less": "prettier",
}

不过项目本地安装了Prettier包的话,会优先使用本地安装的版本,ESLint也一样;

  • 内嵌了eslint-plugin-vue这个vue插件,来进行代码质量控制,默认有一套代码规则,根据Vue版本不同而切换:Vue2项目规则集和Vue3项目规则集;
  • 如果想自定义ESLint规则的话,需要先关闭Vetur的lint校验:vetur.validation.template: false,然后在项目下安装ESLint包和eslint-plugin-vue,编写ESLint规则文件,在里面设定一下rules
{"extends": ["eslint:recommended","plugin:vue/recommended"],"rules": {"vue/html-self-closing": "off"}
}

Vetur暂时不支持TypeScript的校验,不过会把ts的编译错误在“问题”窗口显示出来。

在vscode里配置ESLint和Prettier相关推荐

  1. React 创建项目流程+配置 eslint、 prettier 和 commitlint 规范工程

    一. 利用create-react-app创建TS项目 React中文文档 :开始 – React npx create-react-app projectName --template typesc ...

  2. eslint+vetur+prettier

    theme: juejin highlight: vs2015 01-理论 认识 eslint包:检查代码,但是不在编辑器用线条提示,只能处理js文件,需要命令检查和修复. vscode eslint ...

  3. 更新版-梳理前端开发使用eslint和prettier来检查和格式化代码问题

    更新版,之前的版本可以看这里:梳理前端开发使用eslint和prettier来检查和格式化代码问题 一.问题痛点 在团队的项目开发过程中,代码维护所占的时间比重往往大于新功能的开发.因此编写符合团队编 ...

  4. cefsharp.wpf离线安装包下载_在vscode里编写c++程序(解决gdb下载失败问题)

    要在vscode编辑器里编写c++程序,分两步: 安装c++ 在vscode里配置 关于1: 网上很多人说在线安装MinGW,但我在安装时gbd一直安装失败.在同学的建议下,改用离线安装tdm-gcc ...

  5. vscode+CRA+TypeScript+eslint+prettier+stylelint+husky+lint-staged完整版配置

    最近在做一个react项目,需要统一和规范代码风格,并且实现git管理,规范提交.所以基于CRA脚手架搭建项目整体框架,并自定义配置相关需求. CRA 在目标文件夹下打开cmd,项目使用ts开发,输入 ...

  6. VScode配置ESLint检测语法+Prettier代码格式化

    文章目录 前言 1. ESLint 支持几种格式的配置文件 2. ESLint的数字代表 3. VSCode 默认格式化配置 4. Prettier 配置 5. 如何解决 ESLint 与 Prett ...

  7. Vue学习笔记7 - 在Vscode中配置Vetur,ESlint,Prettier

    俗话说得好,工欲善其事必先利其器,想要熟练开发Vue项目,一个好的开发环境就是必不可少了,这里我就选用了vscode作为开发工具,毕竟vscode免费,还跨平台,应用范围也广,著名的vue开源项目:后 ...

  8. Vue3+Vite项目配置Eslint+Prettier+Husky+Lint-Staged+Commitlint

    Eslint 配置 ESLint 是一个插件化并且可配置的 JavaScript 语法规则和代码风格的检查工具. ESLint 能够帮你轻松写出高质量的 JavaScript 代码. 1.建议 vsc ...

  9. vscode的格式化工具:eslint 、 prettier、editorconfig 和 vetur

    文章目录 eslint--代码检查工具 eslint的作用 eslint的配置 第一步配置IDE的eslint环境 第二步:配置项目中的eslint 下载对应的包 vite集成eslint Eslin ...

最新文章

  1. PAT(甲级)2018年冬季考试 7-1 Google Recruitment
  2. 【转蝈蝈俊.net 】SQL Server 2005 配置发送邮件
  3. query如何全选或不全选时,不操作已经禁用的checkbox
  4. ubuntu14.04安装dropbox
  5. Qt程序打包发布方法(使用官方提供的windeployqt工具)
  6. 引导页 设置只显示一次
  7. 鸿蒙霸榜 GitHub,从最初的 Plan B 到“取代 Android”?
  8. ASP.NET Web API 2框架揭秘
  9. C#创建Windows服务程序
  10. 单位根检验urdf_adf单位根检验(单位根检验的基本步骤)
  11. shell脚本的逻辑判断
  12. 物联网技术是怎么分类的,物联网主要面临哪些难题?
  13. Android studio 4.0 offline mode
  14. vue 用webpack打包文件名添加版本号
  15. Mysql大数据优化方案
  16. java ImageIO处理
  17. php写抢红包,红包生成函数(微信抢红包)
  18. SQL2008服务器连接失败
  19. 微信小程序组件、web-view、h5之间交互
  20. 【自动控制原理】根轨迹法之绘制根轨迹

热门文章

  1. 接口请求一般放在哪个生命周期中?
  2. 喜!人民币入篮;忧!欧央行下调。【济南中金点评 www.zjzx01.com】
  3. 开源“大地震”下,华为如何复制 Google 模式?
  4. canvas水平垂直居中
  5. 程序员也文艺:海燕——高尔基
  6. c语言实验植物与颜色,植物的光合作用曲线比较.doc
  7. 在Excel中如何让数字自动增长?
  8. Docker遇到的一些问题
  9. 每日一面 - MySQL 的双一设置是什么?
  10. 男子机场过安检爆炸 小米移动电源合乎规格吗?