我在使用react-native配置jest时遇到问题,当我安装第三个库时,我遇到了jest语法错误。 我安装了react-native-radio-buttons-group,但出现此错误:
Details:
D:\Documents\aviturn\design-system\node_modules\react-native-radio-buttons-group\lib\index.ts:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,jest){export * from './types';
^^^^^^
SyntaxError: Unexpected token 'export'
还需要注意的是,我在react-native-bouncy-checkbox库中也遇到了类似的问题。
这是我的笑话配置:
module.exports = {
preset: 'react-native',
setupFilesAfterEnv: ['<rootDir>/jest.setup.ts'],
moduleDirectories: ['node_modules', 'src'],
};
这是我的宝贝配置:
module.exports = {
presets: ["module:@react-native/babel-preset"],
plugins: [
"transform-inline-environment-variables",
["babel-plugin-react-docgen-typescript", { exclude: "node_modules" }],
[
'module-resolver',
{
root: ['./src'],
extensions: ['.ios.js', '.android.js', '.js', '.ts', '.tsx', '.json'],
alias: {
"@components": "./src/components",
"@styles": "./src/styles",
"@core": "./src/core"
}
}
]
]
};
提前谢谢您,我搜索了很长时间但无法解决问题。
我最终找到了解决方案,我必须将库添加到transformIgnorePatterns。默认情况下,node_modules 中的所有模块都不会被转换,所以解决方案是告诉 jest 对其进行转换。
transformIgnorePatterns: [
'node_modules/(?!((jest-)?react-native|@react-native(-community)?)|react-native-radio-buttons-group/)',
],
所以现在node_modules中的每个模块都没有被转换,除了react-native,@react-native,@react-native-community和我的库