You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Vitest测试Angular 21库时遇Zone.js依赖报错求助

解决Angular 21库组件Vitest测试提示"Error: In this configuration Angular requires Zone.js"的问题

针对你遇到的问题,有两种直接有效的解决方式,核心都是让测试环境加载Zone.js:

方式一:通过angular.json配置指定测试polyfills文件

  1. 在你的库测试工具目录下创建测试专用的polyfills文件,比如 libs/shared/test-util/test-polyfills.ts,写入以下内容:
import 'zone.js';
import 'zone.js/testing'; // 测试fakeAsync、tick等特性需要导入这个
  1. 修改angular.json中的test配置,添加polyfills字段指向这个文件:
"test": {
  "builder": "@angular/build:unit-test",
  "options": {
    "providersFile": "libs/shared/test-util/global-providers.ts",
    "browsers": ["edge"],
    "polyfills": "libs/shared/test-util/test-polyfills.ts"
  }
}

方式二:直接在现有全局提供者文件中导入Zone.js

如果不想额外创建polyfills文件,直接在已有的global-providers.ts顶部添加Zone.js的导入语句:

// 放在文件最顶部
import 'zone.js';
import 'zone.js/testing';

// 你的原有提供者配置代码...

补充说明

Angular的测试环境依赖Zone.js处理变更检测、异步测试(如fakeAsync)等核心特性,库项目默认没有像应用项目那样内置polyfills配置段,所以需要手动通过上述方式在测试编译流程中注入Zone.js。

内容的提问来源于stack exchange,提问作者Skimrande

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.10 19:12:01