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

Kubernetes Pod部署时dateformat模块报Unexpected token export错误如何解决

问题根因

该错误由dateformat依赖包的版本兼容性问题直接导致:
你安装的是dateformat v4及以上版本,该版本起完全切换为ES Module规范,使用export default语法导出模块;但你的应用采用CommonJS规范,通过require()语句导入模块,Node.js的CommonJS加载器无法识别ESM规范的export语法,因此抛出语法错误,导致服务启动失败,Pod进入CrashLoopBackOff状态。
如果你的package.json中对dateformat的依赖声明带了^、*这类允许自动升级版本的前缀,新部署安装依赖时会自动拉取最新的v4+版本,即便你未修改任何业务代码也会触发该问题。

解决方案

可根据你的业务场景选择以下任意一种方案修复:

  • 方案1:锁定依赖版本(改动最小,无需修改业务代码)
    在package.json中将dateformat的版本号固定为最后一个支持CommonJS的版本3.0.3,删除node_modules目录、package-lock.json或yarn.lock文件后重新安装依赖即可。
  • 方案2:适配ESM规范
    若需要使用最新版dateformat,可将/app/config/auth.js第6行的导入语句修改为ESM语法:
    import dateFormat from 'dateformat';
    
    同时确认运行环境的Node.js版本 >=14.13.0,且在项目package.json中添加"type": "module"配置。
  • 方案3:使用动态导入兼容现有规范
    若不想修改项目整体的模块规范,可将导入逻辑替换为异步动态导入:
    const dateFormat = (await import('dateformat')).default;
    
    注意该写法仅可在异步函数内部使用。
验证方法

执行npm ls dateformat即可查看当前环境实际安装的dateformat版本号,确认是否为v4及以上版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:48:04