从alpha版本升级到angular2@2.0.0-beta.0
时,构建时出现以下错误。
zone is not defined for ng zone
答案 0 :(得分:1)
我遇到了同样的问题,似乎导入Zone.js的浏览器版本也是一种解决方法。
在浏览器中:
<script src="node_modules/zone.js/dist/zone.min.js"></script>
从webpack配置中提取:
module.exports = {
entry: [
'zone.js/dist/zone',
// instead of 'zone.js'
],
};
我想添加评论,但还没有声誉:)
答案 1 :(得分:1)
您可以通过多种方式解决问题。 如果您使用的是导入,请将以下行添加到启动脚本中。
import 'zone.js/lib/browser/zone-microtask';
它注册到全局对象并修补浏览器。 第二种方法如上所述将其包含在HTML中:
<script src="node_modules/zone.js/dist/zone.min.js"></script>
第三个是启用生产模式,它只在启用长堆栈跟踪时给出了错误。
import {enableProdMode} from 'angular2/core';
enableProdMode();
您应该在enableProdMode
之前致电bootstrap
。
答案 2 :(得分:0)
区域未在angular2@2.0.0-beta.0。
中的以下文件中定义更改TS文件中的代码行
angular2\ts\src\core\zone\ng_zone.ts@352
Zone.longStackTraceZone, {onError: function(e) { ngZone._notifyOnError(this, e); }});
要
zone.longStackTraceZone, {onError: function(e) { ngZone._notifyOnError(this, e); }});
注意大写变化。没有Zone,而是参数区域。这会暂时修复构建问题,但可能不是正确的修复方法。
其他一些人提到从开发模式改为生产模式也是一种解决方法。没试过这个。
针对此问题的解决方案的拉取请求为here。