【发布时间】:2020-04-30 09:51:14
【问题描述】:
我尝试用 jest 运行测试,但它因错误而中断:
Invariant Violation: Native module cannot be null.
at invariant (node_modules/invariant/invariant.js:40:15)
at RNFBNativeEventEmitter.NativeEventEmitter (node_modules/react-native/Libraries/EventEmitter/NativeEventEmitter.js:36:7)
at new RNFBNativeEventEmitter (node_modules/@react-native-firebase/app/lib/internal/RNFBNativeEventEmitter.js:24:5)
at Object.<anonymous> (node_modules/@react-native-firebase/app/lib/internal/RNFBNativeEventEmitter.js:48:16)
at Object.<anonymous> (node_modules/@react-native-firebase/app/lib/internal/registry/nativeModule.js:21:1)
我使用最新版本的 RN、Expo、Typescript 等。 我开玩笑的配置是:
"jest": {
"preset": "jest-expo",
"transformIgnorePatterns": [
"node_modules/(?!(jest-)?react-native|react-native|react-clone-referenced-element|@react-native-community|expo(nent)?|@expo(nent)?/.*|react-navigation|@react-navigation/.*|@unimodules/.*|sentry-expo|native-base|@ui-kitten|@react-native-firebase/auth|@react-native-firebase/app)"
]
},
如果我从 transformIgnorePatterns 中删除 @react-native-firebase 则测试失败并出现错误:
import { isAndroid, isBoolean } from '@react-native-firebase/app/lib/common';
^^^^^^
SyntaxError: Cannot use import statement outside a module
1 | import * as React from 'react';
> 2 | import auth, { FirebaseAuthTypes } from '@react-native-firebase/auth';
【问题讨论】:
-
我有同样的错误,你找到解决办法了吗?谢谢
-
我没有。对不起。
标签: reactjs react-native jestjs expo react-native-firebase