0

版本

11.1.1

重现步骤

主分支是在我添加esModule库引用之前,例如 lodash-es add_esmodule-lib-reference分支包含 esModule 库引用,这就是问题所在。

  1. 克隆我的仓库:https ://github.com/chikakow/ng13-jest-esm-import-repro
  2. 留在主分支。然后yarn install
  3. npm run test. 验证 app.component.spec.ts 是否通过。
  4. 将分支切换到add_esmodule-lib-reference
  5. npm run test. 请注意,lodash-es 包中的测试失败。
  6. 打开 jest.config.js 并取消注释 transformIgnorePatterns 代码。
  7. npm run test. 请注意,您会收到“Jest 无法解析文件。” 错误。

预期行为

在 Angular 13 更新之前,transformIgnorePatterns 工作正常,并且在运行 jest 之前编译了 lodash-es 等 esModule 库。
更新前的代码:/ const esModules = ['lodash-es', 'echarts', 'zrender'].join('|'); ... transformIgnorePatterns: [node_modules /(?!${esModules}).+(js|jsx)$, ], ...

Angular 13 更新后的代码:/ const esModules = ['lodash-es', 'echarts', 'zrender'].join('|'); ... transformIgnorePatterns: [ 'node_modules/(?!.*.mjs$)',node_modules /(?!${esModules}).+(js|jsx)$, ] ... ,

在 Angular 13 更新之后,我把由于我试图只覆盖 transformIgnorePatterns 并添加了新记录的覆盖模式 'node_modules/(?!.*.mjs$)',,Jest 不应该抛出 “Jest failed to parse a file”。错误,测试应该通过。

实际行为

Jest 抛出 “Jest 无法解析文件。” 错误并且测试失败。

环境

System: 
Windows 10 Pro
Binaries: 
Node 16.14.0
Npm: 8.3.1
Yarn: 1.22.17
Packages: 
Angular Core 13.2.0
Angular Cli 13.2.5
Jest 27.5.1
Typescript: 4.5.2
4

0 回答 0