错误:找不到模块"暴露?Zone!zone.js"

时间:2016-02-12 23:34:54

标签: javascript typescript angular webpack-dev-server

我正在尝试使用Angular 2.但是在将zone.js作为全局变量导入后,我收到此错误:

enter image description here

我的包及其版本:

"dependencies": {
    "angular2": "2.0.0-beta.3",
    "es6-promise": "3.0.2",
    "es6-shim": "0.33.13",
    "expose-loader": "^0.7.1",
    "reflect-metadata": "0.1.2",
    "rxjs": "5.0.0-beta.0",
    "zone.js": "0.5.11"
}

我在index.ts中导入了zone.js,就像这样import 'expose?Zone!zone.js';

而且,我的index.tswebpack.config.js文件中的条目。

如何通过将其公开为全局变量来正确导入zone.js(使用expose-loader,因为我使用的是WebPack)?

1 个答案:

答案 0 :(得分:0)

Zone.js是Angular 2 polyfill的依赖项,如上面Eric Martinez所述。目前,关于让Angular 2与Webpack一起工作的信息似乎很缺乏。碰巧的是,简单的设置并不是那么复杂。

在主条目文件的顶部,或者可能在供应商代码的单独条目文件中,导入以下内容:

// bundle.ts

import 'es6-shim';
import 'angular2/bundles/angular2-polyfills';
import 'rxjs';

这就是你真正需要的。但是,如果要为供应商代码创建单独的块,可能使用Webpack的CommonsChunkPlugin,则应导入稍后将在应用程序中使用的任何其他Angular 2文件,如下所示:

// vendor.ts

import 'es6-shim';
import 'angular2/bundles/angular2-polyfills';
import 'angular2/platform/browser';
import 'angular2/core';
import 'angular2/router';
import 'rxjs';