You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node 14 LTS环境下optional chaining不生效问题如何解决?

--exec babel-node 含义说明

nodemon 的 --exec 参数用于指定运行代码的执行器,此处配置的作用是:当 ./src 目录下的代码变动触发自动重载时,nodemon 不会直接用系统原生 Node 运行代码,而是先调用 babel-node 工具,将你项目中的 ES6+ 高版本语法实时转译为低版本 Node 可识别的语法后再执行。

可选链语法报错根因

  • 你的项目依赖的 Babel 主版本过旧:当前安装的 babel-cli@6.23.0、babel-preset-latest@6.22.0 均属于已经停止维护的 Babel 6 版本,而可选链(?.)是 ES2020 才新增的语法,Babel 6 官方从未提供对应转译插件,无法识别该语法就会直接抛出 Unexpected token 错误。
  • 语法转译规则缺失:即便是升级到 Babel 7,也需要单独安装 @babel/plugin-proposal-optional-chaining 转译插件,或者使用内置了该规则的 @babel/preset-env 预设,才能正常处理可选链语法。
  • 依赖版本冲突:你的依赖中同时存在 Babel 6 核心包和 Babel 7 生态的 @babel/helper-hoist-variables,版本混用也会导致转译逻辑异常。

修复方案参考

  1. 卸载所有 Babel 6 相关依赖,统一升级到 Babel 7 生态的对应包:@babel/cli、@babel/core、@babel/node、@babel/preset-env
  2. 在 Babel 配置文件中添加 @babel/preset-env 预设,或是单独安装可选链、空值合并运算符等所需的 ES2020 语法转译插件
  3. 调整启动脚本,将旧版 babel-node 替换为 Babel 7 对应的 @babel/node 执行

内容的提问来源于stack exchange,提问作者Noob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 11:27:03