Spec-Zone.ru › ESLint

Настройка парсера

Совет

На этой странице объясняется, как настраивать парсеры с помощью формата плоской конфигурации.

Вы можете использовать пользовательские парсеры для преобразования кода 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.
Предупреждение

Нет никаких гарантий, что внешний парсер будет корректно работать с ESLint. 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"],
				},
			},
		},
	},
]);
Совет

Помимо параметров, указанных в languageOptions.parserOptions, ESLint также передаёт всем парсерам ecmaVersion и sourceType. Это позволяет пользовательским парсерам учитывать контекст, в котором ESLint анализирует код JavaScript.

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/use/configure/parser

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API