gpt4 book ai didi

react-native - 用 Jest 测试 Expo Constant,Jest 遇到意外 token

转载 作者:行者123 更新时间:2023-12-03 17:30:02 24 4
gpt4 key购买 nike

我正在将 SDK 从 Expo 管理的工作流切换到 Expo 裸工作流,以减少 Expo 中包含的一些不必要的库。我目前正在使用 Expo 的一些库,例如 Secure-store、Constants 和 Web 浏览器,而不是使用整个 Expo 包。我有一些最初在 jest、jest-expo 和 Expo 中运行的测试。我从 jest 中删除了 expo 并尝试仅使用上面的这三个 expo 库和 @unimodules 来编译 jest。测试文件具有导入语句,例如:

import * as SecureStore from 'expo-secure-store';
import * as WebBrowser from 'expo-web-browser';
import Constants from 'expo-constants';

但是,在编译 jest 时,它不断给我

Jest encountered an unexpected token This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript. >SyntaxError: Unexpected token import at import Constants from 'expo-constants'; >ScriptTransformer._transformAndBuildScript(node_modules/@jest/transform/build/ScriptTransformer.js:471:17)



似乎我可能已经解决了 expo-secure-store 的意外导入,因为我之前遇到过该错误。我从 Babel6 切换到 babel7,添加了一个如下所示的 babel.config.js:
module.exports = {
presets: [
'@babel/preset-env'
],
env: {
test: {
presets: [['@babel/preset-env']]
}
},
plugins: [
"@babel/plugin-proposal-class-properties",
"@babel/plugin-transform-modules-commonjs"
]
};

我正在从 jest-preset: jest-expo 切换到 jest-preset: react-native。

我的工作流程有问题吗?任何帮助表示赞赏。

最佳答案

有点晚了,但我遇到了这个问题,我修复了添加

"transformIgnorePatterns": [
"node_modules/(?!(jest-)?react-native|react-clone-referenced-element|@react-native-community|expo(nent)?|@expo(nent)?/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|@sentry/.*)"
]
遵循 https://docs.expo.io/guides/testing-with-jest/ 中的指南

关于react-native - 用 Jest 测试 Expo Constant,Jest 遇到意外 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56229274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com