我正在使用Typescript
处理项目,目前我正面临编译Typescript
的问题,然后使用Gulp
连接结果。
var gulp = require('gulp');
var ts = require('gulp-typescript');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
gulp.task('default', function () {
gulp.src('vendor/**/*.js')
// I want to add ts files then combile and concat
.gulp.src('src/**/*.ts')
.pipe(sourcemaps.init())
.pipe(ts({
noImplicitAny: true,
out: 'output.js'
}))
.pipe(concat('all.js'))
.pipe(uglify());
.pipe(sourcemaps.write('/'))
.pipe(gulp.dest('./dist/'));
});
用语言说我需要做的是:
JavaScript
库。Typescripts
。Typescripts
。JavaScript
。更新
或者只是确保之前编译
TypeScript
的方法 继续将结果与JavaScript
连接起来。
答案 0 :(得分:4)
我更像是一个./tmp
人,但是分成两个单独的任务(下面没有测试的解决方案,以及gulp.task('ts', function () {
gulp.src('src/**/*.ts')
.pipe(ts({
noImplicitAny: true,
out: 'output.js'
}))
.pipe(gulp.dest('./tmp/ts'));
});
gulp.task('default', ['ts'], function() {
gulp.src(['vendor/**/*.js', './tmp/ts/output.js'])
.pipe(sourcemaps.init())
.pipe(uglify())
.pipe(sourcemaps.write('/'))
.pipe(gulp.dest('./dist/'));
});
文件夹的临时输出):
gulp default
用法(在您的终端中):
ts
Gulp将首先运行default
任务,然后,一旦完成,它将运行{{1}}任务
答案 1 :(得分:4)
如果你需要来自npm的event-stream
包,那么你可以这样做:
var merge = require('event-stream').merge;
gulp.task('default', function() {
var js = gulp.src('vendor/**/*.js');
var ts = gulp.src('src/**/*.ts')
.pipe(ts({
noImplicitAny: true,
out: 'output.js'
}));
return merge(js, ts)
.pipe(concat('all.js'))
.pipe(uglify())
.pipe(gulp.dest('./dist/'));
});
我不知道如何获取地图的工作,但我确信它很容易理解。