配置解析器
您可以使用自定义解析器将 JavaScript 代码转换为抽象语法树,以供 ESLint 评估。如果您的代码与 ESLint 的默认解析器 Espree 不兼容,您可能需要添加自定义解析器。
配置自定义解析器
在许多情况下,您可以将 ESLint 附带的 默认解析器 用于解析您的 JavaScript 代码。您可以选择使用 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
}
}
]);
此配置确保 Babel 解析器,而不是默认的 Espree 解析器,用于解析所有以 .js
和 .mjs
结尾的文件。
以下第三方解析器已知与 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"]
}
}
}
}
]);