首页 > 解决方案 > 对于 react-native 预设的玩笑,transformIgnorePatterns 无法正常工作

问题描述

收到此错误


    /node_modules/@react-native/polyfills/error-guard.js:14
    type ErrorHandler = (error: mixed, isFatal: boolean) => void;
         ^^^^^^^^^^^^

    SyntaxError: Unexpected identifier

      at Runtime.createScriptFromCode (node_modules/jest-runtime/build/index.js:1350:14)
      at Object.<anonymous> (node_modules/react-native/jest/setup.js:469:6)

但是,我已经设置

transformIgnorePatterns": [
      "node_modules/(?!(jest-)?react-native|react-(native|universal|navigation)-(.*)|@react-native-community/(.*)|@react-navigation/(.*)|bs-platform|(@[a-zA-Z]+/)?(bs|reason|rescript)-(.*)+)"
    ]

或者

transformIgnorePatterns": [
      "node_modules"
    ]

我已经正确设置了 babel

module.exports = function (api) {
  api.cache(true);

  const presets = ['@babel/preset-env', '@babel/preset-react'];
  const plugins = ['@babel/plugin-proposal-class-properties'];
  return {
    presets,
    plugins,
  };
};

而且我已经尝试过清除缓存。

有人有什么主意吗?

标签: react-nativejestjsbabel-jest

解决方案


添加@react-native到您的 Jest 配置中。如:

transformIgnorePatterns": [
      "node_modules/(?!(jest-)?@react-native|react-(native|universal|navigation)-(.*)|@react-native-community/(.*)|@react-navigation/(.*)|bs-platform|(@[a-zA-Z]+/)?(bs|reason|rescript)-(.*)+)"
    ]

推荐阅读