Error: Cannot find module "expose?Zone!zone.js"

Error: Cannot find module "expose?Zone!zone.js"

我正在尝试 Angular 2。但是在将 zone.js 作为全局变量导入后出现此错误:

我的包及其版本:

"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"
}

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

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

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

Zone.js 是 Angular 2 个 polyfill 的依赖项,如上文 所述。关于让 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';