我将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无法解析的文件,例如这不是普通的JavaScript。 > SyntaxError:意外的令牌导入在 从'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-expo切换到玩笑预设:react-native。
我在工作流程中做错什么了吗?任何帮助表示赞赏。
答案 0 :(得分:0)
有点晚了,但是我遇到了这个问题,我修复了添加问题
"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/.*)"
]
遵循指南