Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 即使在通过transformIgnorePatterns编译之后,Jest测试也会在react本机屏幕上失败 描述_React Native_Mobile_Jestjs_Expo_Babeljs - Fatal编程技术网

React native 即使在通过transformIgnorePatterns编译之后,Jest测试也会在react本机屏幕上失败 描述

React native 即使在通过transformIgnorePatterns编译之后,Jest测试也会在react本机屏幕上失败 描述,react-native,mobile,jestjs,expo,babeljs,React Native,Mobile,Jestjs,Expo,Babeljs,即使在transformIgnorePatterns中强制jest.config.js编译react native screens后,它仍然无法执行import语句 技术堆栈 我们通过expo初始化了react本机应用程序。我们使用jest作为由babel支持的单元测试框架 错误日志 babel.config.js jest.config.js /<usr_path>/node_modules/react-native-screens/src/screens.native.js:1

即使在
transformIgnorePatterns
中强制
jest.config.js
编译
react native screens
后,它仍然无法执行import语句

技术堆栈 我们通过expo初始化了react本机应用程序。我们使用jest作为由babel支持的单元测试框架

错误日志 babel.config.js jest.config.js
/<usr_path>/node_modules/react-native-screens/src/screens.native.js:1
    ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import React from 'react';
                                                                                             ^^^^^^

    SyntaxError: Cannot use import statement outside a module
{
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web",
    "eject": "expo eject",
    "test": "jest"
  },
  "dependencies": {
    "expo": "~36.0.0",
    "react": "~16.9.0",
    "react-dom": "^16.12.0",
    "react-native": "^0.61.5",
    "react-native-maps": "0.26.1",
    "react-native-safe-area-context": "0.6.0",
    "react-native-web": "^0.12.1",
    "react-navigation": "^4.1.1",
    "react-navigation-stack": "^2.1.1",
    "react-native-screens": "2.0.0-alpha.20",
    "react-native-gesture-handler": "~1.5.0",
    "@react-native-community/masked-view": "0.1.5"
  },
  "devDependencies": {
    "@babel/core": "^7.0.0",
    "@babel/plugin-proposal-class-properties": "^7.8.3",
    "@babel/preset-env": "^7.8.4",
    "babel-jest": "24.9.0",
    "babel-preset-expo": "~8.0.0",
    "jest-expo": "^36.0.1",
    "jest-fetch-mock": "3.0.1",
    "react-test-renderer": "^16.12.0"
  },
  "private": true
}

module.exports = {
  presets: 
  [
    [
      "@babel/preset-env",
      {
        "targets": {
          "node": "current"
        }
      }
    ],
    "babel-preset-expo"
  ],
  plugins: 
  [
    "@babel/plugin-proposal-class-properties"
  ]
};
module.exports = {
  // All imported modules in your tests should be mocked automatically
  automock: false,
  clearMocks: true,
  coverageDirectory: "coverage",
  preset: "jest-expo",
  testEnvironment: "node",
  transform: {
    "^.+\\.jsx?$": "babel-jest"
  },
  transformIgnorePatterns: [
    "node_modules/(?!(jest-)?react-native|react-clone-referenced-element|@react-native-community|expo(nent)?|@expo(nent)?/.*|react-navigation|@react-navigation/.*|@unimodules/.*|sentry-expo|native-base|react-native-screens)",
    "screens/.*",
  ],
};