在前端开发时,我们经常使用 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