我使用angular.io上的 Ahead-of-Time编译说明编译了Angular 2
中使用typescript 2
编写的应用程序。
main.ts
platformBrowser().bootstrapModuleFactory(AppModuleNgFactory);
现在我有很多ngfactory.ts
个文件以及.js
个文件。对于树摇和捆绑,我正在使用下面的简单systemjs-builder任务:
gulp.task('demo-bundle', function() {
var builder = new SystemBuilder();
builder.loadConfig('./systemjs.config.js')
.then(function(){
return builder.buildStatic('dev/main.js', 'dist/bundle.js', {
encodeNames:false,
mangle: false,
rollup: true
});
})
});
捆绑完成没有错误,但应用程序在浏览器中失败并显示错误:
错误:没有NgZone的提供者!
如果我通过自举从以前的时间改为实时编译:
platformBrowserDynamic().bootstrapModule(AppModule);
然后捆绑和应用程序按预期工作。
有关如何将AoT编辑与buildStatic
正确捆绑的任何想法? (在tsconfig中,module
为es2015
,但我也尝试了system
和commonjs
)
@angular/compiler-cli 0.6.3
,systemjs-builder 0.15.31
,systemjs 0.19.39
答案 0 :(得分:3)
我花了很长时间跟踪这个 - 加载角度模块的umd包导致此错误。更改为在其文件夹中加载index.js文件。