Babel.js 如何让eslint遵守巴别塔规则?

wrrgggsh  于 2022-12-16  发布在  Babel
关注(0)|答案(2)|浏览(187)

我有一个简单的babel配置,将最新的ES代码转化为12.x目标,但当我尝试使用最新的ES功能(如可选链接)时,eslint不喜欢它。
我的巴别塔配置是这样的:

{
  "sourceMaps": "inline",
  "presets": [
    [
      "@babel/preset-env",
      {
        "targets": {
          "node": "current"
        }
      }
    ]
  ],
  "plugins": [
    "@babel/plugin-transform-runtime",
    [
      "module-resolver",
      {
        "alias": {
          "^@/(.+)": "./src/\\1"
        }
      }
    ]
  ]
}

和一个eslint配置如下:

module.exports = {
  extends: [
    'airbnb',
    'airbnb/hooks',
    'plugin:jest/recommended',
    'plugin:jest/style',
    'plugin:cypress/recommended',
    'eslint-config-prettier',
  ],
  env: {
    node: true,
    es6: true,
    jest: true,
    browser: true,
  },
  plugins: ['no-autofix', 'jest', 'cypress'],
  rules: {
    ...
  },
  parserOptions: {
    sourceType: 'module',
    ecmaVersion: 2019,
    ecmaFeatures: {
      jsx: true,
    },
  }
};

我如何告诉eslint ES版本实际上不是节点v12.x而是“最新的”?

kqhtkvqz

kqhtkvqz1#

原来我需要将parserOptions.ecmaVersion更新为2021

zed5wv10

zed5wv102#

如果您使用的是ESLint 8(您应该使用),请在ESLint配置中将es6: true替换为es2021: true并删除ecmaVersion: 2019
添加所有ECMAScript 2021全局变量,并自动将ecmaVersion解析器选项设置为12。
如果您确实想解析最新的语言版本而不是ES2021,那么在parserOptions中可以设置ecmaVersion: "latest"

相关问题