将Handsontable添加到Angular-CLI脚本时,ZoneAwarePromise被覆盖 [英] ZoneAwarePromise overwritten when adding Handsontable to Angular-CLI scripts
问题描述
我想将Handsontable库添加到我的Angular项目中.我使用 angular-cli ,可调入 .angular-cli.json
的脚本部分:
I'd like to add the Handsontable library to my Angular project. Using angular-cli, I added Handsontable to the scripts section of .angular-cli.json
:
"scripts": [
"../node_modules/handsontable-pro/dist/handsontable.full.js"
]
Webpack编译成功,但是在加载Web应用程序时,遇到以下错误:
Webpack compiles successfully, however when loading the web application, I'm encountering the following error:
VM473:34309 Unhandled promise rejection Error: Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.
Most likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)
at Function.webpackJsonp.../../../../zone.js/dist/zone.js.Zone.assertZonePatched (zone.js:44)
at new NgZone (core.es5.js:3757)
at PlatformRef_.webpackJsonp.../../../core/@angular/core.es5.js.PlatformRef_._bootstrapModuleFactoryWithZone (core.es5.js:4551)
at core.es5.js:4596
at run (eval at webpackJsonp.../../../../script-loader/addScript.js.module.exports (addScript.js:9), <anonymous>:34279:22)
at eval (eval at webpackJsonp.../../../../script-loader/addScript.js.module.exports (addScript.js:9), <anonymous>:34292:28)
at MutationObserver.flush (eval at webpackJsonp.../../../../script-loader/addScript.js.module.exports (addScript.js:9), <anonymous>:91358:9)
at ZoneDelegate.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:391)
at Zone.webpackJsonp.../../../../zone.js/dist/zone.js.Zone.runGuarded (zone.js:154)
at MutationObserver.<anonymous> (zone.js:132)
显然,zone.js (默认情况下导入 polyfills.ts
中)在Handsontable(实际上是polyfills包
Apparently, zone.js (imported in polyfills.ts
by default) is loaded before Handsontable (actually the polyfills bundle is loaded first). I found a possible workaround by copying the JS file to my asset folder and moving the Handsontable import to the index.html
:
<html>
<head>
<script src="assets/handsontable.full.js"></script>
</head>
// ...
但是,这确实像是一种黑客,因为 .angular-cli.json
中有一个脚本部分用于使用它.
However, this does feel like a hack, as there is a scripts section in .angular-cli.json
for the purpose of using it.
任何解决此问题的想法都受到高度赞赏.
Any idea on how to fix this issue is highly appreciated.
推荐答案
我遇到了同样的问题,我将"import'zone.js/dist/zone'"从"polyfill.ts"移到了"main.ts"中
I had same issue, i've moved "import 'zone.js/dist/zone'" from "polyfill.ts" into "main.ts"
这篇关于将Handsontable添加到Angular-CLI脚本时,ZoneAwarePromise被覆盖的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!