tsconfig.json

时间:2015-10-18 08:20:57

标签: typescript gulp asp.net-core typescript1.6

我使用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'));
});

它工作正常并编译我的打字稿文件并将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"
  ]  
}

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

在不污染我的源文件夹的情况下,我应该如何修复创建所需的输出文件?

3 个答案:

答案 0 :(得分:7)

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

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

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

答案 1 :(得分:3)

为了这个目的,我建议使用gulp-concat。 Gulp包不会违反Gulp的原则。

var concat = require('gulp-concat');

gulp.task('scripts', function() {
  return gulp.src('./lib/*.js')
    .pipe(concat('all.js'))
    .pipe(gulp.dest('./dist/'));
});

答案 2 :(得分:1)

我相信TypeScript编译器的--outDir选项是什么。请参阅https://github.com/Microsoft/TypeScript/wiki/Compiler-Options,请查看gulp-typescript documentation,其中指明:

  

outDir(string) - 将输出移动到另一个(虚拟)目录。   请注意,您仍然需要gulp.dest将输出写入磁盘。