/node

互联网 行业动态 更新时间:2024-06-13 00:19:06

ste*_*nja 9

TL;博士

至少升级以下 Jest 依赖项*,和 更新 Jest 和 Typescript 配置

*您的项目可能需要额外的升级——我的需要。我发现与 (1) Angular 13 升级 + Jest 和 (2) Jest ESModule 支持相关的搜索结果最有帮助。

"@angular-builders/jest": "^13.0.2",
"jest": "^27.4.7",
"jest-preset-angular": "^11.0.1",
"ts-jest": "^27.1.2",

Angular 13 和 Jest:发生了什么变化?

Angular 13 中对 Jest 最具破坏性的重大更改是ESModule 工件 ( .mjs)。Jest 在支持 CommonJS 模块的 Node 中运行。它具有对 ESModules 的实验性支持,并且需要额外的配置才能启用它。

升级jest-preset-angular解决了第一个错误(反射子路径)并发现了第二个错误:

"@angular-builders/jest": "^13.0.2",
"jest": "^27.4.7",
"jest-preset-angular": "^11.0.1",
"ts-jest": "^27.1.2",

接下来我升级了@angular-builders/jest,jestts-jest. 可能还需要更改您的 Jest 和 Typescript 配置。在您的tsconfig.jsonortsconfig.spec.json中,检查它是否“具有ESMmodulepilerOptions值,例如 ES2015 或 ES2020 等...”,如ts-lint 迁移文档中所述。

以下是我对项目的 Jest 配置所做的更改,但每个项目都略有不同。

$HOME/$PROJECT/node_modules/@angular/core/fesm2015/testing.mjs:7
    import { getDebugNode, RendererFactory2, ?stringify, ?ReflectionCapabilities, Directive, Component, Pipe, NgModule, ?getInjectableDef, resolveForwardRef, ?NG_COMP_DEF, ?Render3NgModuleRef, ApplicationInitStatus, LOCALE_ID, ?DEFAULT_LOCALE_ID, ?setLocaleId, ?Render3ComponentFactory, ?pileComponent, ?NG_DIR_DEF, ?pileDirective, ?NG_PIPE_DEF, ?pilePipe, ?NG_MOD_DEF, ?transitiveScopesFor, ?patchComponentDefWithScope, ?NG_INJ_DEF, ?pileNgModuleDefs, NgZone, Compiler, COMPILER_OPTIONS, ?NgModuleFactory, ModuleWithComponentFactories, InjectionToken, Injector, InjectFlags, ?resetCompiledComponents, ?flushModuleScopingQueueAsMuchAsPossible } from '@angular/core';
    ^^^^^^

    SyntaxError: Cannot use import statement outside a module

如果您仍然遇到问题,我在下面提供了指向每个迁移文档的链接。我仍在解决其他软件包的问题,​​但希望这能让你走上一条好路!

迁移和 ESM 支持文档

Angular 最新升级:https ://angular.io/guide/update-to-latest-version @angular-builders/jest:https ://github./just-jeb/angular-builders/blob/master/MIGRATION.MD jest-preset-angular:https ://thymikee.github.io/jest-preset-angular/docs/next/guides/angular-13+/ ts-jestESM 支持:https ://kulshekhar.github.io/ts-jest/docs/guides/esm-support/ Jest ESM 支持:https ://jestjs.io/docs/ecmascript-modules 如果您仍然遇到Cannot use import错误,请对已关闭的 GitHub 问题发表有用的评论:https ://github./thymikee/jest-preset-angular/issues/1149#issuement-963506942

更多推荐

node

本文发布于:2023-04-20 20:46:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/hyzx/32ac33825d742562b2dc2ff9ad0b5113.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:node

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!