区域未定义为NgZone angular2@2.0.0-beta.0

时间:2015-12-18 15:50:19

标签: angular

从alpha版本升级到angular2@2.0.0-beta.0时,构建时出现以下错误。

zone is not defined for ng zone

3 个答案:

答案 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。

中的以下文件中定义
  • angular2 \ ES6 \ dev的\ SRC \芯\区\ ng_zone.js
  • angular2 \ ES6 \ PROD \ SRC \芯\区\ ng_zone.js
  • angular2 \ SRC \芯\区\ ng_zone.js
  • angular2 \ TS \ SRC \芯\区\ ng_zone.js
  • angular2 \束\ angular2-all.umd.dev.js
  • angular2 \ bundles \ angular2-all.umd.js angular2 \ bundles \ angular2.dev.js
  • angular2 \ bundles \ angular2.js angular2 \ bundles \ web_worker \ ui.dev.js
  • angular2 \束\ web_worker \ worker.dev.js

更改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,而是参数区域。这会暂时修复构建问题,但可能不是正确的修复方法。

其他一些人提到从开发模式改为生产模式也是一种解决方法。没试过这个。

正在github herehere上跟踪此问题。

针对此问题的解决方案的拉取请求为here