gulp-eslint не может проанализировать необязательный синтаксис цепочки

Я пытаюсь связать код JavaScript с необязательным синтаксисом цепочки, например:

let foo = bar?.property;

При разборе моих файлов JS с помощью eslint явно проходит.

При разборе с помощью gulp-eslint при использовании той же конфигурации линтинг не выполняется:

Ошибка синтаксического анализа: неожиданный токен.

Мой .eslintrc.json файл содержит:

      {
    "parserOptions": {
      "ecmaVersion": 2020
    }
}

Моя задача Gulp выглядит так:

      const eslint = require('gulp-eslint');

return gulp.src(['src/**/*.js'])
    .pipe(eslint({ configFile: '.eslintrc.json' }))
    .pipe(eslint.formatEach('compact', process.stderr))
    .pipe(eslint.failAfterError());

Я использую следующие пакеты:

      "devDependencies": {
    "eslint": "^8.2.0",
    "gulp": "4.0.2",
    "gulp-eslint": "^6.0.0",
  }

Я что-то упускаю или есть способ обходного пути?

1 ответ

Параметр анализатора ecmaVersion не может использоваться таким образом, см . https://eslint.org/docs/user-guide/configuring/language-options#specifying-environments . Изменение его с 2020 на 11 или 12 или «последнюю» должно сработать.

Другие вопросы по тегам