在.eslintrc中声明@ babel / eslint-parser的babel插件

问题描述

我已经尝试了一段时间,以使@babel/plugin-proposal-class-properties插件@babel/eslint-parsereslint很好地配合使用,

这是我的.eslintrc.js

...
  "parser": "@babel/eslint-parser","parserOptions": {
    "ecmaVersion": 11,"requireConfigFile": false,},"plugins": [
    "@babel",],...

这些是已安装的相关软件包:

+-- @babel/core@7.11.1
+-- @babel/eslint-parser@7.11.3
+-- @babel/eslint-plugin@7.11.3
+-- @babel/plugin-proposal-class-properties@7.10.4
+-- eslint@7.7.0

在此配置下,ESLint出现以下错误消息:

Parsing error: \eg\example.js: Support for the experimental Syntax 'classprivateProperties' isn't currently enabled (xx:yy): (Fatal)

但是,如果我将@babel/plugin-proposal-class-properties添加plugins中的.eslintrc.js中,就像这样:

  "plugins": [
    "@babel","@babel/plugin-proposal-class-properties",

我收到此错误

Error while running ESLint: Failed to load plugin '@babel/plugin-proposal-class-properties' declared in '.eslintrc.js': Cannot find module '@babel/eslint-plugin-plugin-proposal-class-properties'.

似乎这不是在@babel/eslint-parser中为.eslintrc.js声明插件的正确方法。不过,我怀疑由于此引号here

@babel/eslint-parser支持通过ESLint配置应用Babel配置。

所以我的问题是:

实际上可以在.eslintrc中声明babel插件吗?如果可以的话,究竟如何?

解决方法

实际上比我想象的要简单...

因此,事实证明,由于@babel/plugin-proposal-class-properties是babel插件,因此需要在babel的配置的plugins属性中声明它。根据{{​​3}},这些可以通过babelOptions属性来传递。

因此,它真的是如此简单:

...
  "parserOptions": {
    ...
    "babelOptions": {
      "plugins": [
        "@babel/plugin-proposal-class-properties",...
      ],},"plugins": [
    "@babel",],...