【问题标题】:Angular 13 and Karma: ReferenceError: global is not definedAngular 13 和 Karma:ReferenceError:未定义全局
【发布时间】:2022-07-28 02:08:13
【问题描述】:

我知道有很多关于这个主题的帖子,但到目前为止没有任何帮助。 polyfills.ts 中的 (window as any).global = window 之类的东西不起作用

  • 角度:v13.3
  • Webpack:v4.0.2
  • Webpack CLI:v4.9.2
  • Jasmine 核心:v3.6.0

摘自package.json:

    "karma": "^6.3.9",
    "karma-chrome-launcher": "3.1.1",
    "karma-cli": "2.0.0",
    "karma-coverage": "^2.2.0",
    "karma-firefox-launcher": "1.1.0",
    "karma-jasmine": "4.0.0",
    "karma-jasmine-html-reporter": "1.5.0",
    "karma-junit-reporter": "1.2.0",
    "karma-mocha-reporter": "2.2.5",
    "karma-teamcity-reporter": "1.1.0",
    "karma-webpack": "4.0.2",

错误信息:

Firefox 88.0 (Ubuntu 0.0.0) ERROR
  An error was thrown in afterAll
  ReferenceError: global is not defined
  22161@http://localhost:9876/_karma_webpack_/vendor.js:100738:25
  __webpack_require__@http://localhost:9876/_karma_webpack_/runtime.js:23:42
  55801@http://localhost:9876/_karma_webpack_/vendor.js:100494:38
  __webpack_require__@http://localhost:9876/_karma_webpack_/runtime.js:23:42
  54603@http://localhost:9876/_karma_webpack_/vendor.js:102262:36
  __webpack_require__@http://localhost:9876/_karma_webpack_/runtime.js:23:42
  48370@http://localhost:9876/_karma_webpack_/vendor.js:152925:84
  __webpack_require__@http://localhost:9876/_karma_webpack_/runtime.js:23:42
  32168@http://localhost:9876/_karma_webpack_/vendor.js:187:89
  __webpack_require__@http://localhost:9876/_karma_webpack_/runtime.js:23:42
  21391@http://localhost:9876/_karma_webpack_/main.js:6289:94
  __webpack_require__@http://localhost:9876/_karma_webpack_/runtime.js:23:42
  66820@http://localhost:9876/_karma_webpack_/main.js:6200:102
  __webpack_require__@http://localhost:9876/_karma_webpack_/runtime.js:23:42
  webpackContext@http://localhost:9876/_karma_webpack_/main.js:172720:9
  10116@http://localhost:9876/_karma_webpack_/main.js:171069:16
  __webpack_require__@http://localhost:9876/_karma_webpack_/runtime.js:23:42
  __webpack_exec__@http://localhost:9876/_karma_webpack_/main.js:173796:67
  @http://localhost:9876/_karma_webpack_/main.js:173797:70
  __webpack_require__.O@http://localhost:9876/_karma_webpack_/runtime.js:60:23
  @http://localhost:9876/_karma_webpack_/main.js:173798:56
  webpackJsonpCallback@http://localhost:9876/_karma_webpack_/runtime.js:167:46
  @http://localhost:9876/_karma_webpack_/main.js:1:65

它适用于 Angular v12,但不适用于 Angular v13。

需要更多信息吗?有人知道吗?

提前致谢和问候

无耻

【问题讨论】:

  • 使用globalThis 代替global 有帮助吗? developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
  • 你为什么要这样做?
  • @PeterSalomonsen:globalThis 不幸的是也无济于事 @temp_user:你是什么意思?从 Angular v12 到 v13 的更新?这不是我的决定……
  • 升级到 Angular 13.2.6 后遇到同样的错误你找到解决办法了吗?

标签: angular webpack karma-jasmine


【解决方案1】:

这是对我有用的解决方案。我为我的项目创建了一个polyfills.js,并使用karma.conf.js 中的files 属性将其包含在内。

在我的例子中,我无法在 angular.json 中插入 polyfills.ts,因为这个项目是使用 ng-packagr 构建的,它不支持 polyfills。

【讨论】:

  • 这是一个非常好的解决方案。我对 polyfill 中的 Process 做了同样的事情。为我工作
猜你喜欢
  • 2018-10-16
  • 2011-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-16
  • 2022-10-19
  • 2020-06-27
  • 1970-01-01
相关资源
最近更新 更多