ESLint + VSCode:如何使用.eslintrc格式化你的代码

3,423 阅读2分钟

我已经非常习惯于在保存时让VSCode自动格式化我的文件。通常情况下,我使用Prettier。但我加入了一个使用ESLint来管理其代码风格的项目,我想与团队的格式化相匹配。

我希望在保存时有那种甜蜜的自动格式化,但使用项目根目录下的eslintrc.json 文件,而不是Prettier。

大多数博客文章都想把这个做成一个完整的教程......如何设置eslint,如何创建.eslintrc文件,等等......但我不需要这些。我有一个现有的项目,我只是想配置VSCode来使用ESLint而不是Prettier。

结果这只需要4行的设置配置和一个插件。

下面是如何做的:

1.安装VSCode ESLint插件

在VSCode中,用左边的按钮打开扩展浏览器。在Mac上,键盘上的快捷键Cmd+Shift+X应该也能做到。

搜索eslint

安装顶部的结果,称为 "ESLint"。(就是这个下载量超过1000万的)

2.配置VSCode设置以使用ESLint进行格式化

打开VSCode的设置。在Mac上,按Cmd+, ,或通过菜单到达那里。代码 > 偏好 > 设置。

它将打开花哨的设置编辑器,但我们需要原始的JSON设置文件来代替。

点击右上角的小图标,看起来像一张带小箭头的纸:

Open the Raw Settings in VSCode

在顶层设置对象中添加这4个新行:

{
  // ...
  "eslint.format.enable": true,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  }
}

第一行打开ESLint进行格式化,接下来的三行让它在你点击保存时进行格式化。

这应该就可以了!保存设置文件并关闭它,我们就完成了。

试着对一个文件做一些违反ESLint规则的修改--也许是在需要分号的情况下省去分号?- 然后按保存。它应该会自动格式化。

格式化还在使用Prettier吗?

我最近遇到了一个问题,Prettier的设置覆盖了ESLint的设置。老实说,我不确定这些设置是怎么进去的......也许是我把它们放进去后忘了。

在任何情况下,如果你想让ESLint缩进你的文件,确保Prettier没有覆盖它。找出任何像这样的行,说defaultFormatter 应该是Prettier(Cmd+F或Ctrl+F为 "prettier",因为可能有几个!),并把它们注释掉:

  // "[javascriptreact]": {
  //   "editor.defaultFormatter": "esbenp.prettier-vscode"
  // },

如果你切换回一个不使用ES Lint的项目,你可能需要撤销这个。