升级至最新NX Workspace后Angular测试转换失败求助
解决NX Angular测试中ES2020语法转ES2015不支持的问题
问题分析
错误提示明确指出:测试过程中尝试将ES2020特性(for-await循环、async生成器函数)转译为ES2015环境,但当前转译工具不支持该操作。尽管你已经调整了tsconfig的target版本,但测试环节的独立配置或转译规则未同步更新,导致问题持续存在。
修复步骤
同步测试配置的目标环境
检查项目的jest.config.ts或project.json中的测试配置,确保转译工具的目标环境与应用一致(ES2020+):// jest.config.ts export default { transform: { '^.+\\.(mjs|js|ts)$': [ 'babel-jest', { presets: [ ['@babel/preset-env', { targets: { node: 'current' } }], // 用当前Node版本支持的语法,涵盖ES2020 '@babel/preset-typescript' ] } ] }, tsConfig: 'apps/your-app/tsconfig.spec.json' };同时在
tsconfig.spec.json中明确配置:{ "compilerOptions": { "target": "ES2020", "lib": ["ES2020", "dom"] } }跳过已编译库的转译
feature-flag库已经是ES2020版本,无需再转译。在jest配置中添加忽略规则:// jest.config.ts export default { transformIgnorePatterns: ['/node_modules/feature-flag/'] };检查NX项目配置的覆盖项
在project.json的test执行器配置中,确认没有强制设置更低的目标版本:"test": { "executor": "@nx/jest:jest", "options": { "tsConfig": "apps/your-app/tsconfig.spec.json", "overrideTsConfig": { "compilerOptions": { "target": "ES2020" // 确保这里没有设为ES2015/ES2017 } } } }清理缓存重新测试
运行NX缓存清理命令,避免旧配置残留:nx reset之后重新执行测试:
nx test your-app-name
内容的提问来源于stack exchange,提问作者Zeo
相关产品推荐
相关产品推荐

