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

Bamboo构建时postcss-loader报Unexpected token '?'语法错误

解决Bamboo构建时postcss-loader抛出的SyntaxError: Unexpected token '?'错误

错误信息

const overrideOptions = metaConfig.config ?? {};
30-Aug-2023 15:37:50                                                 ^
30-Aug-2023 15:37:50    
30-Aug-2023 15:37:50    SyntaxError: Unexpected token '?'
30-Aug-2023 15:37:50        at compileFunction (<anonymous>)
30-Aug-2023 15:37:50        at wrapSafe (internal/modules/cjs/loader.js:1072:16)
30-Aug-2023 15:37:50        at Module._compile (internal/modules/cjs/loader.js:1122:27)
30-Aug-2023 15:37:50        at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
30-Aug-2023 15:37:50        at Module.load (internal/modules/cjs/loader.js:1002:32)
30-Aug-2023 15:37:50        at Function.Module._load (internal/modules/cjs/loader.js:901:14)
30-Aug-2023 15:37:50        at Module.require (internal/modules/cjs/loader.js:1044:19)
30-Aug-2023 15:37:50        at require (internal/modules/cjs/helpers.js:77:18)
30-Aug-2023 15:37:50        at Object.<anonymous> (/home/bamboo/bamboo-agent-home/xml-data/build-dir/CMSG-NLFSNAPSHOT19-JOB1/kiwi/src/main/ux/node_modules/postcss-loader/dist/utils.js:18:20)
30-Aug-2023 15:37:50        at Module._compile (internal/modules/cjs/loader.js:1158:30)

问题根源

当前使用的postcss-loader@7.3.3代码中用到了ES2020的空值合并运算符(??),而Bamboo构建环境的Node.js版本低于14.0.0(该版本才开始原生支持??语法),导致Node.js无法解析这个语法抛出错误。所谓Webpack 5无法解析的说法不准确,本质是Node.js版本不兼容。

解决方案

  • 方案1:升级Node.js版本
    将Bamboo构建环境的Node.js升级到14.0.0或更高的LTS版本(比如16.x、18.x),原生支持ES2020语法后即可解决。
  • 方案2:降级postcss-loader版本
    如果无法升级Node.js,可将postcss-loader降级到兼容旧Node.js版本的系列,比如postcss-loader@6.x(v6版本未使用ES2020语法,支持Node.js 12及以上)。执行以下命令:
    npm install postcss-loader@6 --save-dev
    # 或者用yarn
    yarn add postcss-loader@6 --dev
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 06:32:50