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

Webpack 4项目中使用Jest报‘Jest encountered an unexpected token’错误求助

解决Jest遇到Unexpected Token(ES模块import)的问题

看起来你遇到的核心问题是Jest无法处理ES模块的import/export语法,虽然配置了.babelrc但没生效,大概率是依赖版本不兼容或者必要包缺失导致的。下面是一步步的解决方案:

1. 安装Jest兼容的Babel依赖

首先,确保你安装了新版的Babel核心包和预设(旧版babel-preset-*已经被@babel命名空间的包取代,和新版Jest兼容性更好):

npm install --save-dev babel-jest @babel/core @babel/preset-env @babel/preset-react

2. 更新你的.babelrc配置

替换原来的配置内容,确保测试环境能正确转译ES模块和React语法:

{
  "presets": [
    "@babel/preset-react",
    ["@babel/preset-env", { "modules": false }]
  ],
  "env": {
    "test": {
      "presets": [
        "@babel/preset-react",
        "@babel/preset-env"
      ]
    }
  }
}
  • @babel/preset-react负责转译React的JSX语法
  • 测试环境下@babel/preset-env会自动把ES模块转为Jest能识别的CommonJS格式

3. 给Jest明确转译规则

在package.json中添加Jest配置项,确保它用babel-jest处理你的JS/JSX文件:

"jest": {
  "transform": {
    "^.+\\.(js|jsx)$": "babel-jest"
  },
  "moduleFileExtensions": ["js", "jsx"]
}

4. 排除Webpack配置的干扰

你的Webpack在开发环境下排除了ClientApp/scripts目录的转译,但Jest默认只会忽略node_modules目录,所以你的业务代码会被正常转译,不需要额外调整Webpack配置。

完成以上步骤后,重新运行npm run test,应该就能正常处理import语法,顺利通过你的Sum函数测试了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:56:07