我怎么能在Gulp中排除从Typescript编译的javascript文件?

时间:2016-05-30 06:08:40

标签: javascript gulp

我们有一个现有的Angular 1项目,我们希望逐步引入Angular 2组件并最终转换为Angular 2.该项目不是使用Typescript或模块加载器编写的,现在转换整个项目太多了。但Angular 2组件将用Typescript编写,并将使用模块加载器(SystemJS)。

旧版javascript代码通过现有的gulp脚本捆绑在一起。我想对gulp脚本进行最小的修改,以便它忽略从typescript编译的javascript模块。我的想法是尝试排除具有相同基本名称的同一文件夹中具有相应.ts文件的.js文件。我只是无法弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:1)

以下使用fs.statSync检查相应的.ts文件是否存在,并gulp-filter排除这些文件的情况是这样的:

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

var fs = require('fs');

gulp.task('default', function() {
  return gulp.src('src/**/*.js')
    .pipe(filter(function(file) {
      try {
        return !fs.statSync(file.path.replace(/\.js$/, '.ts')).isFile();
      } catch (e) {
        return true;
      }
    }))
    .pipe(gulp.dest('dist'));
});