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

Angular项目运行Karma测试时SignalR依赖jQuery报错求助

排查思路

1. 确认jQuery的安装状态

  • 打开package.json,检查dependencies或devDependencies中是否包含jQuery包,同时确认版本是否适配你的SignalR版本(早期SignalR通常要求jQuery 1.x/2.x版本)
  • 若未安装,执行npm install jquery --save或npm install jquery --save-dev完成安装

2. 调整脚本加载顺序

  • 打开karma.conf.js,找到files数组,确保jQuery的脚本路径优先于SignalR脚本加载,示例配置如下:
    files: [
      'node_modules/jquery/dist/jquery.min.js',
      'node_modules/@aspnet/signalr/dist/browser/signalr.min.js',
      // 其他项目相关脚本
    ]
    
  • 若你是通过angular.json的scripts数组配置全局脚本,同样需要保证jQuery的引入位置在SignalR之前

3. 检查SignalR的引入方式

  • 确认项目中是否直接引入SignalR的本地脚本或CDN资源,而非仅通过模块化import导入(早期SignalR依赖全局jQuery对象,模块化导入可能导致加载顺序异常)
  • 若使用import方式导入SignalR,尝试改为在angular.json的scripts数组中先配置jQuery,再配置SignalR

4. 确保测试环境中jQuery全局变量可用

  • 在测试入口文件(如test.ts)顶部手动挂载jQuery到全局:
    import * as $ from 'jquery';
    window.jQuery = $;
    window.$ = $;
    
  • 也可在karma.conf.js的client配置中补充全局变量声明:
    client: {
      jquery: true
    }
    

5. 清理缓存重新构建

  • 执行npm ci清除旧依赖并重新安装,再运行ng test --no-cache避免缓存导致的加载异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 16:22:04