【发布时间】:2017-01-13 09:30:51
【问题描述】:
Angular 2 rc 6写成Typescript 2.0.2
我正在尝试学习提前编译as outlined here。看起来很简单:
- 运行
ngc而不是Typescript编译器来生成.ngfactory.ts文件 - 将
platformBrowserDynamic().bootstrapModule()替换为platformBrowser().bootstrapModuleFactory()
我不确定如何将第一步应用到我的设置中。我使用gulp-typescript 2.13.6 将我的打字稿编译为 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));
});
所以我的问题是;如何将说明集成到我的工具中?如何让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: Unexpected string at ngc:2: basedir=$(dirname "$(echo "$0" | sed -e 's,\,/,g')")
我怀疑这是因为没有将源目录传递给ngc(所需的命令是ngc -p path/to/project)
基本上,有没有办法使用gulp-typescript 进行一步构建过程? (生成.ngfactory.ts文件,然后全部编译成JavaScript)
【问题讨论】:
标签: angular typescript deployment gulp gulp-typescript