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

React/TS项目Jest出现Cannot use import报错的解决方案

问题场景

在Babel + TypeScript + React技术栈的前端项目中,使用Jest开展组件单元测试时抛出语法错误:
SyntaxError: Cannot use import statement outside a module

已尝试的无效排查手段
  • 调整Babel配置,补充相关转译插件(对应babel.config.js配置见排查时附的项目配置文件)
  • 配置Jest使用ts-jest作为转译预设
  • 参照ts-jest官方说明完成ESM模块支持相关配置
  • 尝试公开社区中同报错的多套通用解决方案
    排查阶段已提供项目当前jest.config.js、babel.config.js、package.json、webpack.config.js全量配置、错误堆栈截图作为定位依据,以上方案均未解决问题。
修复方案

该问题由高版本nanoid包的ESM格式与Jest CommonJS运行环境的兼容问题导致,经实测有效解决方式为:将项目依赖的nanoid版本降级至3.3.4。
执行对应安装命令锁定版本即可:

# npm
npm i nanoid@3.3.4 --save-exact

# yarn
yarn add nanoid@3.3.4 --exact

# pnpm
pnpm add nanoid@3.3.4 --save-exact

安装完成后清除Jest缓存、重新安装依赖后再运行测试用例即可正常执行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 03:24:30