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

Jest执行报SyntaxError: Unexpected identifier错误求解决方案

解决Jest测试中@react-native/polyfills的SyntaxError问题

这个错误的核心原因是@react-native/polyfills包中的TypeScript代码未被转译,Jest默认会忽略node_modules目录下的文件转译,但该包的代码需要经过Babel转译才能在Jest环境中正常运行。以下是针对性的解决步骤:

  • 调整Jest的转译忽略规则
    在jest.config.js中修改transformIgnorePatterns,将@react-native相关包排除在忽略列表外,确保它们会被Babel转译:

    module.exports = {
      // 保留你的其他Jest配置
      transformIgnorePatterns: [
        'node_modules/(?!(@react-native|react-native|@react-native-picker)/)'
      ],
      transform: {
        '^.+\\.(js|ts|tsx)$': 'babel-jest'
      }
    };
    

    这里的(?!...)是正则负向预查语法,意思是node_modules下除了括号内指定的包之外,其他文件才会被忽略转译。

  • 验证Babel配置的正确性
    确保项目根目录的babel.config.js包含React Native的官方预设,这样才能正确转译React Native相关的代码和TypeScript语法:

    module.exports = {
      presets: ['module:metro-react-native-babel-preset']
    };
    
  • 清除Jest缓存
    旧的缓存可能导致配置不生效,执行以下命令清除缓存:

    jest --clearCache
    
  • 检查依赖兼容性
    确保安装了与Jest 27版本兼容的Babel相关依赖,若缺失则执行安装:

    npm install --save-dev babel-jest@^27 @babel/core
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 22:44:56