Intellij 插件:AirBnB ESLint w/React

IT技术 javascript intellij-idea reactjs eslint
2021-05-12 18:02:25

在 Ubuntu 15.10 上使用 Intellij Idea 15.0.2 并尝试将 ESLint 配置为工作。

按照 Jetbrains 网站上的说明进行操作,但没有骰子。

这是我在语言和框架 > javascript > 代码质量工具 > ESLint 中设置的屏幕截图。是我在 IntelliJ 中的 nodejs/npm 设置的屏幕截图

和我的.eslintrc文件,在根项目目录中:

{
  "extends": "airbnb",
  "rules": {
    "comma-dangle": 0
  }
}

这是/index.js在 IntelliJ 中不会产生错误或警告的片段:

var superman = {
    default: { clark: "kent" },
    private: true
};

这是我eslint index.js从终端运行时的输出

   4:1   error    Unexpected var, use let or const instead                      no-var
   5:5   error    Expected indentation of 2 space characters but found 4        indent
   5:23  error    Strings must use singlequote                                  quotes
   6:5   error    Expected indentation of 2 space characters but found 4        indent

注意:我相信 ESLint 正在运行,因为在我将我.eslintrc更改为 AirBNB 版本之前,我使用了.eslintrc来自 Github 的一个,它在 IntelliJ 中引发了许多 ESLint 错误(即.eslintrc文件本身的错误,而不是我的代码中的错误)。

但是,一旦我修复了这些错误,插件就会安静下来,并且在我通过产生错误进行测试时不会对我大喊大叫。

1个回答

JetBrains (Idea, Webstorm) 设置

File > Settings > Plugins > Browse repositories... > Search: eslint > Install > Restart WebStorm

File > Settings > Languages & Frameworks > JavaScript > Code Quality Tools > ESLint

在此处输入图片说明

之后它应该像这样工作:

在此处输入图片说明

ESLint 配置

ESLint 没有配置。您必须创建自己的或使用预设:

npm install --save-dev eslint-config-airbnb eslint

然后在你的 .eslintrc

{
  "extends": "airbnb"
}

您还可以有选择地禁用/修改预设中的一些规则(0 - 禁用规则,1 - 警告,2 - 错误):

{
  'extends': 'airbnb',
  'rules': {
    'indent': [2, 'tab', { 'SwitchCase': 1, 'VariableDeclarator': 1 }],
    'react/prop-types': 0,
    'react/jsx-indent-props': [2, 'tab'],
  }
}

阅读:关闭特定行的 eslint 规则

如果您不想使用 airbnb 配置(最流行的 javascript 样式指南),您可以创建自己的配置。以下是 react 的说明:How to config ESLint for React on Atom Editor

要创建自己的预设,您必须创建名为 eslint-config-myname 的 npm 包,然后使用'extends': 'myname', http://eslint.org/docs/developer-guide/shareable-configs

您可以使用命令行来检查 eslint 是否有效:

./node_modules/.bin/eslint .

您可以在 .eslintignore 中从 eslinting 中排除一些文件(默认情况下排除 node_modules):

bundle.js

还有一个--fix用于 eslint开关。

.editorconfig

ESLint 的好搭档是 editorconfig。这是一个适用于 JetBrains 产品的示例:

root = true

# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true


# Matches multiple files with brace expansion notation
# Set default charset
[*.{js,jsx,html,sass}]
charset = utf-8
indent_style = tab
indent_size = 4
trim_trailing_whitespace = true

# don't use {} for single extension. This won't work: [*.{css}]
[*.css]
indent_style = space
indent_size = 2

我还有一个 github 存储库,它已经设置了这些文件https://github.com/rofrol/react-starter-kit/

基于此https://www.themarketingtechnologist.co/how-to-get-airbnbs-javascript-code-style-working-in-webstorm/

更多在这里https://www.jetbrains.com/webstorm/help/using-javascript-code-quality-tools.html