ZoneAwarePromise已在Meteor

时间:2016-10-05 16:58:07

标签: javascript meteor angular promise zonejs

On Meteor 1.4.1.1因为我已经更新到最新的Angular 2.0.1版本,所以我很难对付这个错误:Zone.js has detected that ZoneAwarePromise (window|global).Promise has been overwritten

我已尝试meteor updatemeteor reset,但错误仍然存​​在。

我已经找了一些答案说我应该在每个其他脚本之后加载Zone.js。问题是我无法控制Meteor上的加载顺序。

这是我的package.json依赖项:

"dependencies": {
    "@angular/common": "^2.0.1",
    "@angular/compiler": "^2.0.1",
    "@angular/core": "^2.0.1",
    "@angular/forms": "^2.0.1",
    "@angular/platform-browser": "^2.0.1",
    "@angular/platform-browser-dynamic": "^2.0.1",
    "angular2": "^2.0.0-beta.17",
    "angular2-meteor": "^0.7.0",
    "angular2-meteor-polyfills": "^0.1.1",
    "bcrypt": "^0.8.7",
    "bluebird": "^3.4.6",
    "chart.js": "^2.3.0",
    "es6-shim": "^0.35.1",
    "meteor-node-stubs": "^0.2.3",
    "reflect-metadata": "^0.1.2",
    "rxjs": "^5.0.0-beta.12",
    "ui-router-ng2": "^1.0.0-beta.3",
    "zone.js": "^0.6.25"
}

这是我的流星套餐:

meteor-base@1.0.4             # Packages every Meteor app needs to have
mobile-experience@1.0.4       # Packages for a great mobile UX
mongo@1.1.12                   # The database Meteor supports right now
reactive-var@1.0.10            # Reactive variable for tracker
jquery@1.11.9                  # Helpful client-side library
tracker@1.1.0                 # Meteor's client-side reactive programming library

standard-minifier-css@1.2.0   # CSS minifier run for production mode
es5-shim@4.6.14                # ECMAScript 5 compatibility for older browsers.
ecmascript@0.5.8              # Enable ECMAScript2015+ syntax in app code

angular2-compilers@0.6.2_1
barbatus:angular2-runtime
deanius:promise
momentjs:moment
fortawesome:fontawesome
dburles:collection-helpers
accounts-password@1.3.0
promise@0.8.4
meteorhacks:ssr
email@1.1.17
jalik:ufs
jalik:ufs-local
service-configuration@1.0.10
accounts-facebook@1.0.10
accounts-google@1.0.10
accounts-twitter@1.1.11
percolate:synced-cron
shell-server`

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

来自Promise

zone.jspromise包覆盖,这是ecmascriptdeanius:promise的依赖。

您需要删除ecmascript并在任何地方使用typescript(客户端和服务器)

答案 1 :(得分:0)

这对我有用。 meteor remove barbatus:angular2-runtime meteor remove barbatus:angular2-polyfills

和/或这个 npm uninstall barbatus:angular2-runtime npm uninstall barbatus:angular2-polyfills

如Richie 765所述: https://github.com/Urigo/angular2-meteor/issues/413

  

我发现barbatus:angular2-runtime和barbatus:angular2-polyfills与ecmascript不兼容。所以我卸载了它们。顺便说一句,是barbatus:angular2-runtime还用于什么?它似乎已从回购中删除,所以我认为无论如何它都没用。在我的项目中,我导入的第一件事就是   import' angular2-meteor-polyfills'   不必在每个文件中,就像首先加载的文件中的第一个导入一样。 /client/main.js将是个好地方。