tsconfig.json中的gulp-typescript和outFile选项

Rem*_*Rem 4 typescript gulp typescript1.6 asp.net-core

我正在使用gulpfile.js以这种方式编译我的tsconfig.json项目:

var ts = require('gulp-typescript');

var tsProject = ts.createProject('Modeler/tsconfig.json',
    { typescript: require('typescript') });

gulp.task('build:ts', function () {
    var tsResult = tsProject.src()
        .pipe(ts(tsProject));
    return tsResult.pipe(gulp.dest('wwwroot/app'));
});
Run Code Online (Sandbox Code Playgroud)

它工作正常,编译我的打字稿文件,并将js文件放入wwwroot/app文件夹

出现问题然后我希望TypeScript编译器使用outFile属性输出单个连接文件

{
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es5",
    "module": "commonjs",
    "outFile": "modeler.js"
  },
  "exclude": [
    "node_modules",
    "wwwroot"
  ]  
}
Run Code Online (Sandbox Code Playgroud)

gulp任务会创建一个空输出文件,并创建*.js文件,其中包含*.ts文件旁边的内容.

如何在不污染源文件夹的情况下创建所需的输出文件?

ahz*_*ahz 7

您确定TypeScript源中没有外部模块吗?

在那种情况下我遇到过类似的行为.使用outFile选项时不允许使用外部模块,但编译器不会抱怨并发出空文件.另外,外部模块应该"在某处"(in outDir)发出.

如果问题不是关于使用普通的外部模块的tsc -p .行为与使用相同的方式gulp-typescript