Typescript Gulp-编译类型脚本,但在连接之前拆分流
我不知道这是否可能。假设我有两套TypeScript源文件要用Gulp编译:Typescript Gulp-编译类型脚本,但在连接之前拆分流,typescript,gulp,Typescript,Gulp,我不知道这是否可能。假设我有两套TypeScript源文件要用Gulp编译: var gulp = require('gulp'); var typescript = require('gulp-typescript'); var appSource = "./app/**/*.ts"; var packageSource = "./mypackage/**/*.ts"; gulp.task("build", function() { return gulp.src([appSour
var gulp = require('gulp');
var typescript = require('gulp-typescript');
var appSource = "./app/**/*.ts";
var packageSource = "./mypackage/**/*.ts";
gulp.task("build", function() {
return gulp.src([appSource, packageSource])
.pipe(typescript())
});
我想将所有的TypeScript一起编译,然后根据原始源分割输出,这样我就可以将它们单独连接起来,最后得到两个文件:
app.js
mypackage.js
Mypackage是主应用程序的一种扩展,以后可能会延迟加载,但TypeScript编译将只与所有源文件一起工作
Mypackage是主应用程序的一种扩展,可能是
延迟加载,但类型脚本编译将
只能同时使用所有源文件
没有必要将它们真正编译在一起。编译同时处理所有源文件的原因是,它在构建“Mypackage”时查找主应用程序中创建的所有类型定义
正确的处理方法是分两步编译它
var gulp = require('gulp');
var ts = require('gulp-typescript');
var merge = require('merge2');
var sourcemaps = require('gulp-sourcemaps');
var runSequence = require('run-sequence');
gulp.task('compilescripts', function () {
var tsScriptsProject = ts.createProject('scripts/tsconfig.json');
var tsResult = tsScriptsProject.src('**/*.ts')
.pipe(sourcemaps.init())
.pipe(ts(tsScriptsProject));
return merge([
tsResult.dts.pipe(gulp.dest('')),
tsResult.js.pipe(sourcemaps.write()).pipe(gulp.dest(''))
]);
});
gulp.task('compilespecs', function () {
var tsSpecProject = ts.createProject('spec/UnitTests/tsconfig.json');
var tsResult = tsSpecProject.src('**/*.ts')
.pipe(ts(tsSpecProject));
return tsResult.pipe(gulp.dest(''));
});
gulp.task('compileall', function (done) {
runSequence('compilescripts', 'compilespecs', done);
});
下面是用于编译脚本的tsconfig.json
{
"compilerOptions": {
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"noEmitOnError": true,
"sourceMap": true,
"declaration": true,
"outFile": "dev-build/scripts/typesharp.js",
"target": "es5",
"suppressImplicitAnyIndexErrors": true
}
}