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

Ember.js构建报nullishCoalescingOperator语法错误,如何启用该特性?

解决Ember中"nullishCoalescingOperator"实验性语法未启用的报错问题

我之前也碰到过一模一样的问题,折腾了好一会儿才搞定,给你整理几个有效的解决思路和步骤:

问题根源分析

空值合并运算符(??)是ES2020的特性,旧版本的ember-cli-babel可能不会默认启用对它的支持,而且你之前尝试的nullishCoalescingOperator: true这类配置项,其实是早期版本的写法,新版本已经不再支持这种单独的开关设置了。

有效解决方案

1. 手动安装对应的Babel插件

首先需要安装专门处理这个语法的Babel插件,在项目根目录执行命令:

npm install @babel/plugin-proposal-nullish-coalescing-operator --save-dev
# 或者用yarn的话
yarn add @babel/plugin-proposal-nullish-coalescing-operator --dev

2. 正确配置ember-cli-build.js

把插件添加到ember-cli-babel的plugins数组里,而不是用旧的开关项:

module.exports = function(defaults) {
  let app = new EmberApp(defaults, {
    'ember-cli-babel': {
      includePolyfill: true,
      plugins: ['@babel/plugin-proposal-nullish-coalescing-operator']
    }
  });

  return app.toTree();
};

3. 针对升级ember-cli-babel后仍无效的情况

如果你已经升级到最新版的ember-cli-babel但还是不能默认启用,大概率是项目里的其他依赖影响了Babel配置:

  • 检查package.json里的@babel/core和@babel/preset-env版本,确保它们和当前ember-cli-babel版本兼容
  • 查看项目中是否有自定义的.babelrc或babel.config.js文件,这些文件的配置可能会覆盖ember-cli-babel的默认设置
  • 尝试清除node_modules和lock文件,重新安装依赖:
    rm -rf node_modules package-lock.json
    npm install
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 11:17:36