我最近更新了角阿波罗从2.6.0到v3.0.0,这个更新打破了我的测试。
我在单元测试中使用jest,虽然应用程序编译和运行良好,但我的测试无法从“阿波罗角”导入任何依赖项,并且我会收到如下错误:
Test suite failed to run
Cannot find module 'apollo-angular' from 'src/graphql/generated/graphql.ts'
Require stack:
src/graphql/generated/graphql.ts
src/app/pages/test/test.component.ts
src/app/pages/test/test.component.spec.ts
1 | /* eslint-disable */
> 2 | import { gql } from 'apollo-angular';
| ^
3 | import { Injectable } from '@angular/core';
4 | import * as Apollo from 'apollo-angular';
5 | export type Maybe<T> = T | null;
at Resolver.resolveModule (node_modules/jest-resolve/build/resolver.js:324:11)
at Object.<anonymous> (src/graphql/generated/graphql.ts:2:1)在模块分辨率上有一个命令,因为‘阿波罗角’v3正在使用.mjs,解析的文件将是package.json (在node_modules/apollo-angular/package.json中),package.json包含‘模块’属性。
{
"module": "build/fesm2020/ngApollo.mjs",
}简而言之,在导入import * as Apollo from 'apollo-angular'时,我期望jest解析node_modules/apollo-angular/package.json,其中一个指向build/fesm2020/ngApollo.mjs,这是要导入的预期文件。
同样,TS正在正确编译项目,并且能够导入这个es模块,但不能开玩笑。我错过了什么?
发布于 2022-04-01 11:56:25
好像我用的是一个旧版本的jest-preset-angular
"jest-preset-angular": "^9.0.7",我更新到
"jest-preset-angular": "^11.1.1",然后,我做了一个小改动,修复了从我的import 'jest-preset-angular/setup-jest';文件中删除setup-jest.ts行,bug就消失了。
https://stackoverflow.com/questions/71704711
复制相似问题