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

部署代码到服务器时遇ReferenceError: globalThis is not defined问题求助

解决ReferenceError: globalThis is not defined问题

问题根源

Node.js 10.x版本**不支持globalThis**这个全局对象,它是在Node.js 12.0.0及后续版本才正式引入的。你本地运行正常,大概率是本地使用的Node.js版本高于10,而服务器Docker容器里指定了Node.js 10,导致代码中用到globalThis的地方报错,进而引发容器持续重启。

解决方案

方案1:升级Node.js版本(推荐)

修改Dockerfile里的Node.js版本为12.x及以上(比如12.22.12、14.x长期支持版),重新构建镜像部署:

# 替换成支持globalThis的Node.js版本
FROM node:12.22.12-alpine
# 后续构建步骤不变

方案2:替换代码中的globalThis

如果暂时无法升级Node.js,把代码里所有的globalThis替换成Node.js 10支持的全局对象:

  • 仅Node.js环境下,直接用global代替globalThis
  • 需兼容浏览器和Node.js时,在代码入口添加兼容层:
const globalThis = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : this;

方案3:使用polyfill

安装core-js并引入globalThis的polyfill:

  1. 安装依赖:
npm install core-js@3
  1. 在代码最顶部引入:
import 'core-js/es/global-this';

额外排查点

  • 运行node -v确认本地Node.js版本,验证版本差异是否为问题核心
  • 检查Bitbucket流水线配置,确认是否存在覆盖Dockerfile中Node.js版本的设置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:40:30