私はAnglesプロジェクトにHandsontableライブラリを追加したいと思います。 angular-cliを使用して、私は.angular-cli.json
のスクリプトセクションにHandsontableを追加しました:(zone.js、どうやらAngers-CLIスクリプトにHandsontableを追加するとZoneAwarePromiseが上書きされます
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)
:
"scripts": [
"../node_modules/handsontable-pro/dist/handsontable.full.js"
]
のWebPACKは、Webアプリケーションをロードするときしかし、私は次のようなエラーに遭遇したんだ、正常にコンパイルデフォルトでpolyfills.ts
にインポートされます)がHandsontableの前にロードされます(実際にはpolyfillsバンドルis loaded first)。私は自分の資産フォルダにJSファイルをコピーしてindex.html
にHandsontableインポートを移動することによって、可能な回避策が見つかりました:
<html>
<head>
<script src="assets/handsontable.full.js"></script>
</head>
// ...
目的のため.angular-cli.json
でスクリプトのセクションがあるのでしかし、これは、ハックのように感じるんそれを使用する。
この問題を解決する方法についてのご意見は高く評価されます。私は同じ問題を持っていた
ここで、zone.jsをインポートしていますか?どんな種類のローダーを使っていますか? – MehulJoshi
@MehulJoshi、上で説明したように、zone.jsはpolyfills.tsに読み込まれます(最初に読み込まれます)。 – tilo