ESLint 检查代码时报错:Parsing error: Unexpected token ...

在前端开发时,我们经常使用 ESLint 来检查代码的质量和规范性,但是有时候在检查代码时,ESLint 会报错,提示 "Parsing error: Unexpected token ...",这个错误很多人可能会遇到,本文将详细介绍这个问题的原因和解决方法。

问题原因

问题的原因是因为在代码中使用了 ES6 的语法,但是 ESLint 默认只支持 ES5 的语法,因此当遇到 ES6 的语法时,就会报错。

比如,在以下代码中,我们使用了展开运算符 "...",这是 ES6 的语法:

----- --- - - -- -- -- - --
----- ------ - - ------- -- - --
-------------------- -- - -- -- -- -- -- - -

但是,ESLint 默认不支持这个语法,会报错 "Parsing error: Unexpected token ..."。

解决方法

要解决这个问题,我们需要告诉 ESLint,我们的代码中使用了 ES6 的语法,让它对 ES6 的语法进行支持,有以下几种方法:

方法一:使用 babel-eslint

babel-eslint 是一个具有 ES6 支持的 ESLint 解析器,它使用 Babel 解析器来解析代码,支持 ES6 语法,因此可以解决这个问题。

在安装 babel-eslint 模块后,在 .eslintrc 中的 parser 配置项中指定为 "babel-eslint",如下所示:

--------- ---------------

方法二:使用 eslint-plugin-babel

除了使用 babel-eslint 解析器外,还可以使用 eslint-plugin-babel 插件来解决这个问题。

安装 eslint-plugin-babel 模块后,在 .eslintrc 中的 plugins 配置项中添加 "babel",如下所示:

---------- -
  -------
--

然后在 rules 配置项中添加 "babel/semi" 和 "babel/no-invalid-this" 规则,如下所示:

-------- -
  ------------- --------
  ------------------------ -------
--

这样就可以解决 "Parsing error: Unexpected token ..." 错误了。

方法三:添加 parserOptions 配置项

除了使用 babel-eslint 解析器和 eslint-plugin-babel 插件外,还可以在 .eslintrc 中的 parserOptions 配置项中添加 "ecmaVersion" 和 "sourceType" 选项来解决这个问题。

在 parserOptions 配置项中添加 "ecmaVersion" 选项,指定为 2018 或以上的版本,即可支持 ES6 的语法,如下所示:

---------------- -
  -------------- ----
--

如果项目的所有文件都是 ES6 模块,可以添加 "sourceType" 选项,指定为 "module",如下所示:

---------------- -
  -------------- -----
  ------------- --------
--

结论

ESLint 检查代码时报错 "Parsing error: Unexpected token ..." 是因为默认不支持 ES6 的语法,可以通过使用 babel-eslint 解析器、eslint-plugin-babel 插件或者在 parserOptions 中添加选项来解决这个问题。在平时的开发中,我们应该尽可能遵循规范和使用最新的语言特性,以提高代码的质量和可维护性。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/66f7b5b6c5c563ced5a67c6d