使用SystemJS-builder捆绑Angular 2 Ahead-of-Time编译器文件

时间:2016-10-09 08:46:02

标签: angular deployment module compilation systemjs

我使用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中,modulees2015,但我也尝试了systemcommonjs

@angular/compiler-cli 0.6.3systemjs-builder 0.15.31systemjs 0.19.39

1 个答案:

答案 0 :(得分:3)

我花了很长时间跟踪这个 - 加载角度模块的umd包导致此错误。更改为在其文件夹中加载index.js文件。