【发布时间】:2016-02-08 16:51:19
【问题描述】:
给定一个 tsconfig 文件并使用命令行 tsc,一切正常。但是,使用 gulp-typescript 并指定 tsconfig.json 和 outFile 会创建不同的输出顺序 - 我的问题是我找不到像 tsc 那样生成相同 javascript 的 gulp 方式。
我们的构建工作流程基于 gulp;但tsc 是黄金标准,具有出色的手表功能,并具有广泛的工具支持(例如http://dev.ivogabe.com/using-vscode-with-gulp-typescript/)。如果我能让我们基于 gulp 的构建工作与 tsc 一样,那就太好了。
例如tsconfig.json:
{
"compilerOptions": {
"declaration": false,
"preserveConstEnums": true,
"outFile": "out/out.js",
"sourceMap": true,
"target": "es5",
"noEmitOnError": true
},
"exclude": [
"node_modules",
"out"
]
}
例如gulpfile.js:
"use strict";
var gulp = require('gulp');
var typescript = require('gulp-typescript');
var tsProject = typescript.createProject('tsconfig.json');
gulp.task('typescript:compile', function () {
var tsResult = tsProject.src()
.pipe(typescript(tsProject));
return tsResult.js.pipe(gulp.dest('out'));
});
gulp.task('default', ['typescript:compile']);
同样,我的问题是tsc 与上述tsconfig.json;和gulp 与上面的gulpfile.js 和tsconfig.json(使用gulp-typescript)为打字稿文件的非平凡目录产生不同的输出顺序。开发人员应该能够在两个构建过程之间任意切换,并确保他们没有错过输出排序错误。
我不明白用于tsc 和gulp-typescript 的输出排序规则之间的区别,所以我无法为这个问题创建一个简单的重现案例。但理想情况下,gulp-typescript 在使用 tsconfig 项目时会使用与 tsc 相同的顺序。
我可以通过使用“子进程”.exec 来调用 tsc 来解决这个问题,但是 gulp-typescript 具有更好的 gulp 集成;我也愿意使用任何其他直接调用 typescript 编译器的 gulp 插件(并使用 tsconfig.json 项目文件),但我一直找不到。
【问题讨论】:
标签: typescript gulp-typescript