Я скомпилировал свое Angular 2
приложение, написанное на typescript 2
, используя инструкции по компиляции с опережением времени на angular.io.
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