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

Jest报错:Cannot use import statement outside a module 求助

解决Jest测试中SyntaxError: Cannot use import statement outside a module的问题

1. 先清缓存,排除缓存干扰

有时候缓存会导致依赖解析异常,执行以下操作:

  • 清除Jest缓存:npx jest --clearCache
  • 清除Node模块缓存:node --clear-module-cache
  • 重新安装依赖:rm -rf node_modules package-lock.json && npm install

2. 检查axios是否被自动更新

即便你没改代码,若package.json里axios是宽松版本(比如^0.27.2),可能自动更新到了用ES模块的新版本:

  • 查看当前axios版本:npm list axios
  • 如果是v1.x+这类新版本,直接在package.json里锁定之前能正常运行的版本(比如"axios": "0.27.2"),然后重新安装依赖

3. 调整Jest配置强制转译ES模块

在jest.config.js里添加配置,让Jest转译axios这类第三方ES模块:

module.exports = {
  transform: {
    '^.+\\.(js|jsx)$': 'babel-jest',
  },
  transformIgnorePatterns: [
    'node_modules/(?!axios/)' // 不对axios做转译忽略
  ]
};

同时确保.babelrc配置正确,比如使用@babel/preset-env:

{
  "presets": [
    ["@babel/preset-env", { "targets": { "node": "current" } }]
  ]
}

4. 检查Node.js版本是否变动

如果近期更新过Node.js,版本变化可能影响模块解析。可以切换回之前能正常运行的Node版本(比如用nvm:nvm use <旧版本号>),再测试是否恢复正常。

内容的提问来源于stack exchange,提问作者José Carlos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 06:32:01