Karma 测试:在公司代理后面加载 JS 文件时出错

Karma testing: Error loading JS files behind corporate proxy

我正在使用 Open WC Karma-ESM 插件并尝试 运行 我的测试。我已将必要的脚本添加到 package.json:

    "test": "npx karma start --coverage",
    "test:gate": "npx karma start",
    "test:watch": "npx karma start --coverage --auto-watch=true --single- 
    run=false",

但是当我 npm 运行 test 时,我的终端出现了来自 Headless Chrome 的错误:

SyntaxError: Unexpected token '<'Chrome 79.0.3945 (Mac OS X 10.14.6) ERROR
Uncaught SyntaxError: Unexpected token '<'

在浏览器中,我可以看到它成功地将 Karma 的初始文件加载到 运行 它的测试中:

http://localhost:9876/
http://localhost:9876/socket.io/socket.io.js
http://localhost:9876/karma.js
http://localhost:9876/socket.io/?EIO=3&transport=polling&t=My6P1Ln
http://localhost:9876/socket.io/?EIO=3&transport=polling&t=My6P1M3&sid=Cc2mqcjmMzmq2IN1AAAB
http://localhost:9876/socket.io/?EIO=3&transport=polling&t=My6P1M4&sid=Cc2mqcjmMzmq2IN1AAAB

然后它点击了这个,它得到了 101 交换协议 的响应。响应正文包含所有 Unexpected token < 错误和 Page Restricted 错误:

ws://localhost:9876/socket.io/?EIO=3&transport=websocket&sid=Cc2mqcjmMzmq2IN1AAAB

因此,这些页面被我的公司代理限制和拒绝,它们 return 一个 404 以便解释错误。我已将我的 Chrome 代理首选项更新为 绕过这些主机和域的代理设置 : 本地主机,127.0.0.1

但这并没有解决问题。

只是为了抛出一个曲线球,当我 运行 sudo npm 运行 test 它工作得很好。现在这让我完全不知所措。

非常感谢任何提示 - 提前致谢。正在为这个而苦苦挣扎。

当您将 http_proxy 和 https_proxy 定义为环境变量时,将发生此错误。修复方法是添加一个新的环境变量 NO_PROXY=localhost,127.0.0.1。这个错误让我丧命了好几天。我希望它能帮助某人。