Intellij 插件:AirBnB ESLint w/ React

Posted

技术标签:

【中文标题】Intellij 插件:AirBnB ESLint w/ React【英文标题】:Intellij plugin: AirBnB ESLint w/ React 【发布时间】:2016-04-14 11:52:04 【问题描述】:

在 Ubuntu 15.10 上使用 Intellij Idea 15.0.2 并尝试配置 ESLint 以使其正常工作。

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

Here's a screencap of my 语言和框架 > javascript > 代码质量工具 > ESLint 中的设置。 And here's a screencap 我在 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 版本之前,我使用的是 Github 的 .eslintrc,它在 IntelliJ 中引发了许多 ESLint 错误(即 @ 987654334@ 文件本身,而不是我的代码)。

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

【问题讨论】:

在代表限制的 OP b/c 中不能发布超过 2 个链接,所以:the .eslintrc from github 产生了错误 walkthrough on jetbrains 我跟着配置 ESLint IntelliJ 插件。 也许这会有所帮助themarketingtechnologist.co/… 哇。我怎么会错过-谢谢,我基本上已经放弃了。如果您想将其发布为答案,我将标记为已接受 【参考方案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'],
  

阅读:Turning off eslint rule for a specific line。

如果您不想使用 airbnb 配置(最流行的 javascript 样式指南),您可以创建自己的配置。这里是反应指令: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

【讨论】:

您还必须使用babel-parer,否则 airbnb 扩展将无法正常工作 @BruceLee 你在谈论这个github.com/airbnb/javascript/issues/589#issuecomment-618436179 吗?

以上是关于Intellij 插件:AirBnB ESLint w/ React的主要内容,如果未能解决你的问题,请参考以下文章

使用 airbnb 和 prettier 扩展的 ESLint 配置,用于使用 typescript、jest 和 react-hooks 的 react 项目

如何使用 nodejs express 应用程序配置 eslint

无法使用 eslint-config-airbnb 解析依赖关系树

使用 React 和 Webpack 设置 Airbnb ESLint

如何让 VueJS + ESLint (Airbnb) + Prettier 一起工作? (VS代码)

Mac WebStorm 错误:找不到模块“eslint-config-airbnb”