我正在将一个SDK从Expo托管工作流切换到Expo裸机工作流,以减少Expo中包含的一些不必要的库。我目前正在使用一些来自Expo的库,例如Secure-store、Constants和Web browser,而不是使用整个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遇到了一个意外的标记 这通常意味着您正在尝试导入Jest无法解析的文件,例如不是纯JavaScript。 >SyntaxError: 在“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。
这个流程有什么问题吗?感谢任何帮助。