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

升级@angular/cli后执行ng test时PhantomJS在Angular4 vendor.bundle报错

解决Angular CLI测试时Karma Webpack中间件请求异常的方案

我之前也碰到过几乎一模一样的问题,结合你描述的情况——换了CLI版本但问题依旧,新建项目验证过bundle引入逻辑没问题,那大概率是测试环境下Karma配置缓存、资源路径或者构建优化逻辑冲突导致的,给你几个针对性的解决方向:

1. 彻底清理各类缓存

缓存绝对是这类“无厘头”构建问题的高发原因,先执行以下命令把相关缓存全清掉:

# 清理Angular CLI的本地缓存
rm -rf node_modules/.cache
# 清理Karma生成的临时文件和覆盖率报告
rm -rf ./coverage .karma

之后重新安装依赖并运行测试:

npm install
ng test

2. 检查Karma配置的核心路径项

打开项目根目录的karma.conf.js,重点确认这几个配置:

  • files数组是否正确指向测试入口:通常CLI生成的配置是{ pattern: './src/test.ts', watched: false }
  • preprocessors是否正确关联了测试文件:{'./src/test.ts': ['webpack', 'sourcemap']}
  • 确保webpack配置里的output.publicPath没有被错误修改,测试环境下默认应为''或'/',避免资源请求路径错位

3. 临时关闭CLI测试构建的优化项

有时候CLI的测试构建优化逻辑会和Karma webpack中间件产生冲突,你可以在angular.json(旧版本是.angular-cli.json)里调整测试配置,先关闭部分优化:

"test": {
  "builder": "@angular-devkit/build-angular:karma",
  "options": {
    "sourceMap": false,
    "optimization": false,
    "vendorChunk": true
  }
}

修改后重新运行ng test,如果问题消失,再逐步开启优化项来定位具体触发点。

4. 验证Karma插件版本兼容性

虽然你换了CLI版本,但Karma和相关插件的版本可能不匹配。Angular CLI 1.7.x对应的karma-webpack建议用2.x版本,你可以重新安装指定版本试试:

npm install karma-webpack@2.0.13 --save-dev

补充:获取更详细的错误日志

你提到的Requesting /_karma_webpack...本身是Karma webpack中间件的正常请求日志,但如果后续跟着404或其他报错,就说明资源路径有问题。可以加--verbose参数获取更详细的调试信息:

ng test --verbose

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:03:26