2

在 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`

有任何想法吗 ?

4

2 回答 2

1

Promise来自的包被包zone.js覆盖,promise包是ecmascriptand的依赖项deanius:promise

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

于 2016-10-07T13:51:11.740 回答
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 将是一个好地方。

于 2016-10-09T11:11:47.910 回答