Настройка парсера
Вы можете использовать пользовательские парсеры для преобразования кода JavaScript в абстрактное синтаксическое дерево, которое ESLint сможет анализировать. Вам может понадобиться добавить пользовательский парсер, если ваш код несовместим с парсером ESLint по умолчанию — Espree.
Настройка пользовательского парсера
Во многих случаях для анализа кода JavaScript можно использовать парсер по умолчанию, поставляемый вместе с ESLint. При необходимости вы можете переопределить парсер по умолчанию с помощью свойства parser. Свойство parser должно быть объектом, соответствующим интерфейсу парсера. Например, вы можете использовать пакет @babel/eslint-parser, чтобы разрешить ESLint анализировать экспериментальный синтаксис:
// eslint.config.js
import babelParser from "@babel/eslint-parser";
import { defineConfig } from "eslint/config";
export default defineConfig([
{
files: ["**/*.js", "**/*.mjs"],
languageOptions: {
parser: babelParser,
},
},
]);
Эта конфигурация гарантирует, что для анализа всех файлов с расширениями .js и .mjs будет использоваться парсер Babel, а не парсер Espree по умолчанию.
Известно, что следующие сторонние парсеры совместимы с ESLint:
- Esprima
- @babel/eslint-parser — обёртка над парсером Babel, обеспечивающая его совместимость с ESLint.
- @typescript-eslint/parser — парсер, преобразующий TypeScript в формат, совместимый с ESTree, чтобы его можно было использовать в ESLint.
Настройка параметров парсера
Парсеры могут принимать параметры, изменяющие их поведение. Свойство languageOptions.parserOptions используется для непосредственной передачи параметров парсерам. Эти параметры всегда зависят от конкретного парсера, поэтому доступные параметры следует искать в документации используемого парсера. Ниже приведён пример настройки параметров парсера Babel ESLint:
// eslint.config.js
import babelParser from "@babel/eslint-parser";
import { defineConfig } from "eslint/config";
export default defineConfig([
{
languageOptions: {
parser: babelParser,
parserOptions: {
requireConfigFile: false,
babelOptions: {
babelrc: false,
configFile: false,
presets: ["@babel/preset-env"],
},
},
},
},
]);
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/use/configure/parser