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

React(Vite)中用Jest模拟fetch请求时出现语法错误的原因

「Cannot use import statement outside a module」错误的常见原因
  • 模块系统不兼容:你的代码使用了ES模块语法(import/export),但Jest默认采用CommonJS模块系统(require/module.exports)。如果测试文件或被测试的React组件里用了ES模块写法,而Jest没配置成支持ES模块,就会触发这个错误。
  • 转译工具配置缺失:如果项目依赖Babel或TypeScript转译ES模块代码,但测试环境没正确配置转译规则,Jest就无法识别import语句。比如没安装@babel/preset-env、@babel/preset-react这类预设,或者babel.config.js、jest.config.js里没启用对应的转译配置。
  • 文件扩展名与模块规则不匹配:Jest默认将.js文件视为CommonJS模块,如果你在.js文件里写了ES模块语法,又没在Jest配置里调整moduleFileExtensions或transform规则来处理这类文件,就会报错。
  • 第三方库未被正确转译:如果你的项目依赖的第三方库提供了ES模块版本,而Jest的transformIgnorePatterns配置排除了对该库的转译,导致Jest直接解析其ES模块代码,就会出现这个错误。
  • Jest配置冲突:比如项目在package.json里设置了"type": "module"启用ES模块,但Jest没适配这个配置;或者jest.config.js里的moduleType没设置为esm,也会引发模块系统的冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 12:13:09