Angular 2 rc 6
, записанный в Typescript 2.0.2
Я пытаюсь изучить компиляцию Ahead-of-Time как описано здесь. Это кажется достаточно простым:
- Запустите
ngc
вместо компилятора Typescript для генерации.ngfactory.ts
файлов - Замените
platformBrowserDynamic().bootstrapModule()
наplatformBrowser().bootstrapModuleFactory()
Я не уверен, как применить первый шаг к моей настройке. Я использую gulp-typescript 2.13.6
для компиляции моего Typescript в JavaScript.
gulpfile.js
var ts = require('gulp-typescript');
var tsProject = ts.createProject('tsconfig.json', {
//Use TS version installed by NPM instead of gulp-typescript built-in
typescript: require('typescript')
});
gulp.task('build-ts', function () {
return gulp.src(appDev + '**/*.ts')
.pipe(ts(tsProject))
.pipe(gulp.dest(appProd));
});
Итак, мой вопрос; как интегрировать инструкции в свои инструменты? Как мне получить gulp-typescript
для использования компилятора Angular? Я пробовал:
var tsProject = ts.createProject('tsconfig.json', {
typescript: require('@angular/compiler') // or '@angular/compiler-cli'
});
Это вызывает ошибки без запуска ngc
. Я также пробовал
var tsProject = ts.createProject('tsconfig.json', {
typescript: require('./node_modules/.bin/ngc')
});
Это выполняется ngc
, но сразу же вызывает ошибку:
SyntaxError: Неожиданная строка в ngc: 2: basedir = $(dirname "$ (echo" $0 "| sed -e ', \,/, g')" )
Я подозреваю, что это происходит потому, что исходный каталог не передается в ngc
(требуемая команда ngc -p path/to/project
)
В принципе, есть ли способ использовать gulp-typescript
для создания одноэтапного процесса сборки? (сгенерируйте файлы .ngfactory.ts
, затем скомпилируйте все для JavaScript)