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

VueJS+BabylonJS+Node项目Jest配置Babel后仍遇Unexpected token错误

Jest解析错误:Unexpected token 'export' 解决办法

问题场景

在VueJS+BabylonJS+Node项目中搭建Jest单元测试,执行npm test时遭遇解析错误,已配置Babel但问题未解决。

当前配置(package.json)

"jest": {
  "testEnvironment": "node",
    "transform": {
      "^.+\\.js$": "babel-jest"
    }
  },
  "babel": {
    "presets": [
      ["@babel/preset-env", { "targets": { "node": "current" } }]
    ]
  },  

错误信息

Jest 遇到意外的 token
Jest 无法解析文件。这种情况通常发生在你的代码或依赖使用了非标准 JavaScript 语法,或者 Jest 未配置支持该语法时。
Jest 开箱即支持 Babel,会根据你的 Babel 配置将文件转换为有效的 JS。
export * from "./abstractScene.js";
^^^^^^
SyntaxError: Unexpected token 'export'

解决步骤

  • 修改Jest配置,让Babel转译BabylonJS依赖
    默认Jest不会转译node_modules中的代码,但BabylonJS使用ES模块语法,需要让babel-jest处理它。更新Jest配置:

    "jest": {
      "testEnvironment": "node",
      "transform": {
        "^.+\\.js$": "babel-jest"
      },
      "transformIgnorePatterns": [
        "/node_modules/(?!(@babylonjs|babylonjs)/)"
      ]
    }
    

    这里transformIgnorePatterns的规则表示:不对node_modules中除@babylonjs和babylonjs之外的包忽略转译,确保这两个包的ES模块代码被Babel处理。

  • 确认Babel依赖完整
    确保已安装必要的Babel相关依赖,若未安装,执行以下命令:

    npm install --save-dev @babel/core @babel/preset-env babel-jest
    
  • 简化Babel配置(可选)
    可以简化@babel/preset-env的配置,让它自动适配当前环境:

    "babel": {
      "presets": ["@babel/preset-env"]
    }
    

    原配置的targets: { node: "current" }也可保留,不影响功能。

  • 若涉及Vue单文件组件(可选)
    若项目中存在.vue文件,需添加vue-jest处理这类文件,更新Jest的transform配置:

    "transform": {
      "^.+\\.js$": "babel-jest",
      "^.+\\.vue$": "vue-jest"
    }
    

    同时安装依赖:

    npm install --save-dev vue-jest
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 10:22:20