Angular 2 rc 6
written in Typescript 2.0.2
I'm trying to learn Ahead-of-Time compilation as outlined here. It seems simple enough:
- Run
ngc
instead of the Typescript compiler to generate.ngfactory.ts
files - Replace
platformBrowserDynamic().bootstrapModule()
withplatformBrowser().bootstrapModuleFactory()
I'm not sure how to apply the first step to my setup. I use gulp-typescript 2.13.6
to compile my typescript to JavaScript.
gulpfile.js
var ts = require('gulp-typescript');
var tsProject = ts.createProject('tsconfig.json', {
//Use TS version installed by NPM instead of gulp-typescript's built-in
typescript: require('typescript')
});
gulp.task('build-ts', function () {
return gulp.src(appDev + '**/*.ts')
.pipe(ts(tsProject))
.pipe(gulp.dest(appProd));
});
So my question is; how do I integrate the instructions into my tooling? How do I get gulp-typescript
to use the Angular Compiler? I've tried:
var tsProject = ts.createProject('tsconfig.json', {
typescript: require('@angular/compiler') // or '@angular/compiler-cli'
});
This throws errors without ever running ngc
. I also tried
var tsProject = ts.createProject('tsconfig.json', {
typescript: require('./node_modules/.bin/ngc')
});
This does execute ngc
but immediately throws error:
SyntaxError: Unexpected string at ngc:2: basedir=$(dirname "$(echo "$0" | sed -e 's,\,/,g')")
I suspect this is because no source directory is passed to ngc
(the required command is ngc -p path/to/project
)
Basically, is there a way to use gulp-typescript
to have a one step build process? (generate .ngfactory.ts
files, then compile all to JavaScript)
cb
andcb(err)
? Do I need to install achild_process
plugin? Does the path include the nametsconfig.json
or is it just path to the directory? – Ingest