如何让静态类成员被eslint9接受?

问题描述 投票:0回答:1

对于我们的 Cypress E2E 测试,我们使用如下页面对象(https://github.com/OWASP/wrongsecrets/blob/master/src/test/e2e/cypress/pages/homePage.js):

export default class HomePage {
  static CHALLENGE_TABLE = 'challenge-overview'
  static CHALLENGE_TABLE_ROW = 'challenge-row'
  static CHALLENGE_0_COMPLETED = '"challenge-0_completed-link"'
  static TOTAL_SCORE = 'total-score'
}

当我运行 eslint9 时,我得到

/home/runner/work/wrongsecrets/wrongsecrets/src/test/e2e/cypress/pages/homePage.js
  2:26  error  Parsing error: Unexpected token =

虽然我的 eslint.config.mjs 是:

import { FlatCompat } from '@eslint/eslintrc'
import mochaPlugin from 'eslint-plugin-mocha'
import globals from "globals";
const compat = new FlatCompat()
export default [
  {
    languageOptions: {
      ecmaVersion: 2022,
      sourceType: "commonjs",
      globals:{
        ...globals.browser
      }
    },
  },
  mochaPlugin.configs.flat.recommended, {
    rules: {
      'mocha/no-exclusive-tests': 'error',
      'mocha/no-skipped-tests': 'error',
      'mocha/no-mocha-arrows': 'off'
    }
  },
  ...compat.config(
    {
      extends: ['plugin:cypress/recommended'],
      rules: {
        'cypress/no-unnecessary-waiting': 'off'
      }
    })
]

我的 eslint.config.mjs 有什么问题吗?如何让 Eslint 接受静态属性?或者我的静态属性不再正确定义?你能帮我吗?

javascript eslint
1个回答
1
投票

如果使用静态属性,eslint 配置需要使用 babel 作为解析器。您可以在平面配置系统中以以下格式执行此操作。我已经使用了没有配置的 babel。

import { FlatCompat } from '@eslint/eslintrc';
import mochaPlugin from 'eslint-plugin-mocha';
import globals from 'globals';
import babelParser from "@babel/eslint-parser";

const compat = new FlatCompat();

export default [
  {
    languageOptions: {
      ecmaVersion: 2022,
      sourceType: 'module',
      globals: {
        ...globals.browser,
      },
      parser: babelParser,
      parserOptions: {
        requireConfigFile: false,
        babelOptions: {
          presets: ['@babel/preset-env'],
        },
      },
    },
  },
  mochaPlugin.configs.flat.recommended,
  {
    rules: {
      'mocha/no-exclusive-tests': 'error',
      'mocha/no-skipped-tests': 'error',
      'mocha/no-mocha-arrows': 'off',
    },
  },
  ...compat.config({
    extends: ['plugin:cypress/recommended'],
    rules: {
      'cypress/no-unnecessary-waiting': 'off',
    },
  }),
];

我希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.