求助:Monorepo中React组件Jest测试遇Unexpected token 'export'错误
解决Monorepo中Jest测试React组件时的ESM语法错误
问题根源
错误源于uuid包输出的ESM格式文件,Jest默认不对node_modules目录下的文件进行转译,导致无法识别export语法。
解决方案
1. 调整Jest配置,允许转译uuid包
在Jest配置文件(如jest.config.js或package.json的jest字段)中,修改transformIgnorePatterns规则,让Babel处理uuid包:
module.exports = { // 保留其他原有配置 transformIgnorePatterns: [ 'node_modules/(?!uuid/)' // 仅排除uuid之外的node_modules文件,让Babel转译uuid ] };
2. 完善Babel配置(适配React组件)
你测试的是React组件,原有Babel配置缺少React语法处理预设,需要补充:
module.exports = { presets: [ ['@babel/preset-env', {targets: {node: 'current'}}], '@babel/preset-typescript', '@babel/preset-react' // 添加该预设处理JSX等React语法 ], };
3. Monorepo环境下的依赖校验
如果使用pnpm,在对应包目录或根目录执行pnpm install,确保Babel、Jest及相关依赖都正确安装。
验证
重新运行Jest测试,即可正常解析uuid的ESM文件,消除语法错误。
内容的提问来源于stack exchange,提问作者V.Jason
相关产品推荐
相关产品推荐

