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

已启用ESM支持,Jest仍因uuid解析测试失败求助

解决Jest 29.7.0运行时uuid模块的ESM语法错误问题

针对你遇到的Jest解析uuid模块时出现的Unexpected token 'export'错误,可通过以下步骤排查解决:

1. 明确项目的ESM模式配置

如果项目未开启ESM模式,即使使用--experimental-vm-modules参数,Jest仍可能无法正确处理ESM依赖:

  • 在项目根目录的package.json中添加:
    "type": "module"
    
  • 若不想全局修改项目模块类型,可将Jest配置文件改为ESM格式(重命名为jest.config.mjs),并添加:
    export default {
      extensionsToTreatAsEsm: ['.ts', '.js']
    };
    

2. 让Jest处理node_modules中的uuid模块

默认Jest会忽略node_modules下的文件转换,但uuid的ESM版本未被编译为CommonJS,需调整配置让Jest转换该模块:
在Jest配置文件中添加:

export default {
  // 其他已有配置
  transformIgnorePatterns: ['/node_modules/(?!uuid)/'],
  transform: {
    '^.+\\.(ts|js)$': 'ts-jest' // 确保ts-jest支持ESM转换
  },
  moduleFileExtensions: ['ts', 'js', 'json']
};

3. 优化启动命令

避免直接指定Jest的本地路径,改用pnpm的exec命令减少路径问题:

node --experimental-vm-modules $(pnpm bin jest) sample.test.ts

或在package.json的scripts中配置:

"scripts": {
  "test": "node --experimental-vm-modules jest"
}

之后执行:

pnpm test sample.test.ts

4. 尝试升级uuid版本

uuid@8.3.2虽支持exports字段,但升级至最新的uuid@9.x版本可获得更好的Jest兼容性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 19:50:08