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

使用Jest遇SyntaxError: Unexpected token 'export'错误,求配置方案

解决Jest导入change-case时的Unexpected token 'export'错误

这个问题本质是change-case是纯ES模块,而Jest默认的模块解析规则没适配它,以下是几个可行的解决配置:

1. 调整Jest配置文件(jest.config.js/ts)

确保你的Jest配置正确处理ES模块和TypeScript:

export default {
  preset: 'ts-jest',
  testEnvironment: 'node',
  // 把.ts文件当作ES模块处理
  extensionsToTreatAsEsm: ['.ts'],
  transform: {
    // 用ts-jest转译TypeScript,开启ES模式
    '^.+\\.tsx?$': ['ts-jest', { useESM: true }],
  },
  // 修复ES模块导入时的后缀问题
  moduleNameMapper: {
    '^(\\.{1,2}/.*)\\.js$': '$1',
  },
  // 让Jest转译node_modules里的change-case(默认不转译)
  transformIgnorePatterns: [
    'node_modules/(?!(change-case)/)',
  ],
};

2. 检查package.json的模块类型

  • 如果你的项目是ES模块(package.json里有"type": "module"),确保Jest配置和ES模块模式匹配(上面的配置已经支持)
  • 如果是CommonJS项目(没有"type": "module"),除了上面的配置,还可以尝试安装babel-jest并配置Babel来转译ES模块依赖

3. 调整导入方式

部分情况下,ES模块的导出和CommonJS的导入兼容有问题,可以试试按需导入或者默认导入:

// 按需导入(推荐)
import { camelCase, snakeCase } from 'change-case';

// 或者默认导入
import recase from 'change-case';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 23:17:39