给定一个tsconfig文件并使用命令行tsc,一切都按其应有的方式工作。但是,使用指定的gulp-typescript和指定的tsconfig.json和outFile会产生不同的输出顺序--我的问题是,我找不到一种方法来生成与tsc相同的javascript。
我们的构建工作流程是基于gulp的;但是tsc是黄金标准,具有很好的手表功能,并且具有广泛的工具支持(如http://dev.ivogabe.com/using-vscode-with-gulp-typescript/)。如果我能让我们以吞咽为基础的构建工作与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的输出排序规则之间的区别,因此我无法为这个问题创建一个简单的repro案例。但理想情况下,当使用tsconfig项目时,gulp-typescript将使用与tsc相同的顺序。
我可以通过使用“子进程”.exec来调用tsc来解决这个问题,但是gulp-typescript有更好的gulp集成;我也可以使用任何其他gulp插件直接调用类型记录编译器(并使用tsconfig.json项目文件),但我一直找不到。
发布于 2016-02-08 23:45:32
我的问题是我找不到像tsc那样生成相同javascript的方法
TypeScript有一个通过以下方式进行排序的内部实现:
references和import指令对其他文件进行排序。注意: API使用者(如gulp)无法使用这一功能。而且,即使只使用tsc:https://github.com/TypeStrong/atom-typescript/blob/master/docs/out.md,这也可能导致问题。
所以使用外部模块:https://basarat.gitbooks.io/typescript/content/docs/project/modules.html
下面是一个快速启动:https://basarat.gitbooks.io/typescript/content/docs/quick/browser.html
https://stackoverflow.com/questions/35274909
复制相似问题