Nuxt服务端中间件使用&&=运算符报Unexpected token语法错误
报错原因
&&=是ES2021(即ES12)版本才新增的逻辑赋值运算符,低版本JavaScript运行环境以及旧版本的JS转译/打包工具默认都不支持该语法。- 你遇到该报错的核心原因有两种可能:
- 运行Nuxt服务端中间件的Node.js版本低于v15.0.0(Node.js从v15.0.0开始才完全支持ES2021的所有语法特性),JS运行时无法识别
&&=符号直接抛出语法错误。 - 如果你用的是Nuxt2版本,其内部依赖的webpack4默认的JS解析器版本不支持ES2021新语法,就算Node版本符合要求,打包阶段也会报解析错误。
- 运行Nuxt服务端中间件的Node.js版本低于v15.0.0(Node.js从v15.0.0开始才完全支持ES2021的所有语法特性),JS运行时无法识别
- 你改写后的等价写法是ES5版本就支持的标准语法,所有Node.js版本和打包工具都能正常解析,所以运行没有问题。
解决方案
你可以根据项目情况选择任意一种方案解决:
- 升级本地和生产环境的Node.js版本到v15.0.0及以上,如果你用的是Nuxt3版本,升级Node版本后即可正常使用该语法。
- 调整项目的Babel转译配置,新增ES2021语法的转译规则,让转译工具提前把
&&=这类新语法转换为低版本兼容的代码,适配旧版本的打包工具和Node运行环境。 - 直接使用你改写后的等价写法,兼容性最好,不需要额外调整运行环境或项目配置。
内容的提问来源于stack exchange,提问作者DaDo
相关产品推荐
相关产品推荐

