ESLint箭头函数解析错误求助:不知错误原因及配置修改方案
解决ESLint解析错误:Unexpected token =>
我来帮你搞定这个ESLint解析报错的问题——这个Parsing error: Unexpected token =>本质是因为ESLint的解析器没识别到ES2017引入的async箭头函数语法。你的代码本身语法是对的,问题出在ESLint的配置上。
错误原因
ESLint默认使用的Espree解析器,默认配置可能没有启用对ES2017+语法的支持。而你写的async () => {}这种异步箭头函数是ES2017的新特性,所以解析器会把=>判定为意外的语法标记。
解决方案
根据你的项目场景,选下面对应的方法修复:
方案1:基础ESLint配置调整(无Babel场景)
如果你的项目不需要Babel转译,直接在ESLint配置文件(比如.eslintrc.js、.eslintrc.json,或者package.json里的eslintConfig字段)中,修改parserOptions,指定支持的ECMAScript版本:
// .eslintrc.js示例 module.exports = { parserOptions: { ecmaVersion: 2017, // 也可以用"latest"自动适配最新ES语法 sourceType: "module" // 因为你用了ES6的const等模块级语法 }, // 你的其他ESLint规则配置... };
方案2:适配Babel项目
如果你的项目用Babel做转译(比如依赖@babel/preset-env),需要用@babel/eslint-parser替代默认解析器,让ESLint能识别Babel支持的所有语法:
- 先安装必要依赖:
npm install --save-dev @babel/eslint-parser @babel/core @babel/preset-env
- 修改ESLint配置:
// .eslintrc.js示例 module.exports = { parser: "@babel/eslint-parser", parserOptions: { babelOptions: { presets: ["@babel/preset-env"] } }, // 其他ESLint规则... };
方案3:升级ESLint版本
如果你的ESLint版本太老(比如v6及更早),对新语法的支持可能有缺陷,建议升级到最新稳定版:
npm install --save-dev eslint@latest
验证修复
修改完配置后,重启ESLint的服务(或者重新运行eslint命令),这个解析错误应该就会消失了。
内容的提问来源于stack exchange,提问作者Mike Williamson
相关产品推荐
相关产品推荐

