VSCode 插件之 ESLint

科林-Colin 等级 805 0 0

vscode-eslint

github.com/microsoft/v…

为了区分 npm ESLint 包和 VSCode 的 ESLint 插件,我把前者称为 npm ESLint,后者称为 vscode-eslint。

vscode-eslint 优先使用安装在当前项目中的 npm ESLint,如果当前项目中没有提供,它会使用全局安装的 npm ESLint,然后看是否存在 ESLint 配置文件,如果没有的话就不会去校验,有的话如果待校验的文件属于 "eslint.validate" 或者属于 "eslint.probe" 且探测成功,开始 ESLint 校验。

注意:

  • ESLint 将自动在待校验的文件目录里寻找 ESLint 配置文件,紧接着是父级目录,一直到文件系统的根目录,除非在 ESLint 配置文件中指定 root: true 停止向上寻找。
  • ESLint 插件并没有像 Prettier 插件那样自身有一个捆绑的 ESLint 版本。

示例

  • 全局安装 npm ESLint,vue-cli-demo 项目下没有本地安装 npm ESLint,项目根目录下有 ESLint 配置文件。可以从输出中看到使用的是全局的 npm ESLint。

    VSCode 插件之 ESLint

  • 全局安装 npm ESLint,vue-cli-demo 项目下本地安装 npm ESLint,项目根目录下有 ESLint 配置文件。可以从输出中看到使用的是本地安装的 npm ESLint。

    VSCode 插件之 ESLint

  • vue-cli-demo 项目下本地安装 npm ESLint,项目根目录下没有 ESLint 配置文件。可以从输出中看到报错了,所以 ESLint 不会校验。

    VSCode 插件之 ESLint

Settings Options

  • "eslint.enable" - 启用/禁用 vscode-eslint。默认情况下是启用的。

  • "eslint.validate" - 一个语言标识符数组,指定要执行验证的文件,默认为 ["javascript", "javascriptreact"]。如果待校验的文件类型属于 "eslint.validate",vscode-eslint 会开启 ESLint 校验,如果 ESLint 配置文件中没有引入相应的插件,那么 ESLint 会报错。这是一个旧的设置。

  • "eslint.probe" - 一个语言标识符数组,指定要执行验证的文件,默认值为 ["javascript"、"javascriptreact"、"typecript"、"typecriptreact"、"html"、"vue"、"markdown"]。如果待校验的文件类型属于 eslint.probe,且 ESLint 配置文件中没有引入相应的插件,那么 probe(探测) 失败, vscode-eslint 不会开启 ESLint 校验;如果待校验的文件类型属于 eslint.probe,且 ESLint 配置文件中引入了相应的插件,那么 probe 成功, vscode-eslint 会开启 ESLint 校验。

    例如开发 Vue ,需要在 "eslint.probe" 中添加 ["html", "vue"],在项目中安装 eslint-plugin-vue, eslint-plugin-html ,这样才会在 .vue 单文件中开启 ESLint 检测,VSCode 才会在代码编辑器中正确的高亮错误的语法,并且会在窗口中输出错误信息。

    为了更好的了解 vscode-eslint 的运行,我们可以在 settings.json 中设置 "eslint.trace.server": "verbose",这样就可以在输出中看到更多日志。

    示例:

    • "eslint.validate""eslint.probe" 中都添加了 vue,从图中看到报了 Parsing error,表明已经开始 ESLint 校验。报错是因为使用的是 ESLint 默认的 parser - Espree,它无法正确的解析 .vue 文件。

      VSCode 插件之 ESLint

    • "eslint.validate" 中没有添加 vue,"eslint.probe" 中添加了 vue,从图中看到没有报错。注意:从 "eslint.validate" 中删除 vue 保存之后,App.vue 中的报错不会立马消失,需要重新启动 VSCode 后,App.vue 中的报错才会消失。

      VSCode 插件之 ESLint

    • 在上例的基础上,在 ESLint 配置文件中引入 eslint-plugin-vue,可以看到开始了 ESLint 校验。

      VSCode 插件之 ESLint

  • "editor.codeActionsOnSave" (@since 2.0.0) - 支持 source.fixAll.eslint。如果设置为 "true",所有 ESLint/ESLint 插件(@typescript-eslint/eslint-plugin, eslint-plugin-vue, eslint-plugin-react 等)的可自动修复的错误都将在保存时被修复。你也可以选择性地启用和禁用特定的语言。

    // 保存的时候自动修复 ESLint/ESLint 插件中可自动修复的错误
    {
      "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true
      }
    }
    // 禁用 HTML 文件的 codeActionsOnSave
    {
     "[html]": {
        "editor.codeActionsOnSave": {
          "source.fixAll.eslint": false
        }
      }
    } 
  • "eslint.alwaysShowStatus" - 是否总是在状态栏显示 ESLint 标志,默认是 false。

    VSCode 插件之 ESLint

  • "eslint.trace.server": "verbose" - 查看更多 vscode-eslint 详细日志。

如何在 VSCode 中配置 ESLint ?

目前针对项目代码的校验和格式化通常是采用 ESLint 和 Prettier 配合实现的,那么如何在 VSCode 中配置才能实现保存的时候按照 Prettier 的规则自动格式化代码并且修复 ESLint/ESLint插件中 fixable 的规则,同时在编辑器中提示警告和错误呢?

  • 首先在 VSCode 安装 vscode-eslint,安装后默认是启动的。

  • 项目中下载 eslint, prettier, eslint-config-prettier, eslint-plugin-prettier。

    npm install --save-dev eslint prettier eslint-config-prettier eslint-plugin-prettier 
  • 项目根目录添加 .eslintrc.js 和 .prettierrc

    // .eslintrc.js
    {
      "extends": ["plugin:prettier/recommended"]
    }
    // .prettierrc
    {
      "singleQuote": true
    } 
  • settings.json 中配置。

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

    注意:在 VSCode 插件之 Prettier 中写到使用 Prettier 格式化代码的配置如下,那为什么上面 settings.json 的配置中没有添加 prettier-vscode 的配置呢?因为我们在 .eslintrc.js 中引入了 eslint-plugin-prettier,它以 ESLint 规则的方式运行 Prettier,所以不需要在 VSCode 中再去配置。具体可参考 ESLint 之与 Prettier 配合使用

    // settings.json
    {
     "[javascript]": { // 根据语言设置其对应的默认格式化工具
          "editor.defaultFormatter": "esbenp.prettier-vscode", // 设置 javascript 的默认格式化工具为 prettier
          "editor.formatOnSave": true, // 保存的时候自动格式化
      },
    } 

本文转自 https://juejin.cn/post/6926456864276873230,如有侵权,请联系删除。

收藏
评论区

相关推荐

VSCode 插件之 ESLint
vscodeeslint github.com/microsoft/v…(https://github.com/microsoft/vscodeeslint) 为了区分 npm ESLint 包和 VSCode 的 ESLint 插件,我把前者称为 npm ESLint,后者称为 vscodeeslint。 vscodeeslint 优先
electron:桌面应用程序的革命
“ 你也许不了解electron,但你应该了解或使用过atom、vscode、xmin zend,没错他们所使用的开发技术就是electon,通过前端技术开发桌面应用程序,刚开始接触electron时,考虑最多的是性能问题,不过作为一个vscode、xmin zen重度使用者的我来说,基本上对其性能的担心减少了很多,并且发现了基于vue框架构造electro
vscode+vue简单安装教程
1、安装vscode、node.js。2、打开vscode终端,全局安装vuecli:npm install g vuecli用于构建项目。3、继续安装webpack(打包工具):npm install g webpack。4、安装完成创建一个文件夹用于存放项目,比如myvue,cd到该文件夹,使用项目创建命令:vue init webpack myvue。
@JavaScript程序员,如何写出令人惊叹的高级代码?
### △ 是新朋友吗?记得先点web前端学习圈关注我哦~ ![](https://oscimg.oschina.net/oscnet/332f31ec-5040-43fa-90fa-06a0b296c308.jpg) > 各种包管理器到ESLint,从CommonJS到AMD,再从ES6模块到Babel和Webpack,好多工具啊! ![](http
VSCode 配置 Python 开发环境
### 一、环境准备 首先需要先安装好 Python 和 VSCode, 下载地址如下 * [VSCode](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fcode.visualstudio.com%2F) * [Python](https://www.oschina.net/
Visual Studio Code (vscode) 配置 Java 环境
Visual Studio Code (vscode) 配置 Java 环境  ---------------------------------------   最近在学习使用Java,同时使用VSCode也很久了,就想用vscode配置一下开发环境,下面我们开始吧~~~ ### ✍✍✍ 主要步骤:   ➤ 下载安装配置java   ➤ 配置jav
vscode 使用 clang 格式化 c++代码
原文链接: [vscode 使用 clang 格式化 c++代码](https://my.oschina.net/ahaoboy/blog/4497479) 需要ubuntu  安装 clang vscode 安装 clang-format 插件和 clangd插件 sudo apt-get update sudo apt-g
vscode中配置eslint
安装Nodejs,然后安装eslint 使用全局安装: npm install -g eslint npm install -g eslint-plugin-react npm install -g eslint-plugin-html 安装完毕后,我们使用"eslint --init"命令在用户目录中生成一个配置文件(也可以在任何你喜欢的位
vscode安装go所有插件(全网最全)
#### 1.vscode安装go所有插件 vscode版本:1.51.0 go版本:version go1.15.2 windows/amd64 git客户端版本:Git-2.29.2.2-64-bit #### 2.使用vscode自动安装 1. 需要提前安装go、vscode、git客户端,配置git环境,配置go环境,GOPATH这个环境
vscode的eslint插件不起作用
最近在用vue进行开发,但是vsCode中的eslint插件装上之后不起作用 1.vsCode打开“设置”,选择"settings.json" ![](https://img2018.cnblogs.com/blog/921637/201905/921637-20190516165707540-1304630667.png) 2.输入一段脚本
ubuntu中使用VsCode+Eigen创建Eiegn应用程序
Visual studio code是微软发布的一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器。 1\. VsCode安装 ============ VScode官网下载.deb文件,网址链接如下:[https://code.visualstudio.com/#alt-downlo
10分钟阅读一篇关于Vue
![file](https://oscimg.oschina.net/oscnet/up-4f8ccb1755bb73c4ffe6a7ba91253ddc.jpg "file") Vue-cli Vue脚手架的基本用法,vue脚手架用于快速生成vue项目基础架构: 地址: https://cli.vuejs.org/zh/ 使用方式,安装3.x版本
Aliyun Serverless VSCode Extension v1.10.0 发布
[Aliyun Serverless VSCode Extension](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fyq.aliyun.com%2Fgo%2FarticleRenderRedirect%3Furl%3Dhttps%253A%252F%252Fgithub.com%252
Aliyun Serverless VSCode Extension 上架并开源
Aliyun Serverless VSCode Extension ================================== [Aliyun Serverless VSCode Extension](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fyq.aliyun.com%
Vue 项目中 ESlint 配置
前言 -- 对于 ESlint 这一块一直存在一些疑问,今天看到一个文章内容挺好的,这里拿来了。 一、eslint 安装 ----------- ### 1、全局安装 npm i -g eslint 全局安装的好处是,在任何项目我们都可以使用eslint的全局命令进行代码规则操作,但是这对我们的意义并不大,后续会详细介绍; 全局安装之后