对于 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-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)-(.*)+)"
    ]