如何在Gulp中排除从Typescript编译的JavaScript文件?

如何在Gulp中排除从Typescript编译的JavaScript文件?

问题描述:

我们有一个现有的Angular 1项目,我们希望逐渐引入Angular 2组件,并最终转换为Angular 2.该项目不是使用Typescript或模块加载器编写的,现在转换整个过程将会过于现实。但Angular 2组件将用Typescript编写,并将使用模块加载器(SystemJS)。如何在Gulp中排除从Typescript编译的JavaScript文件?

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

+0

对于编译打字稿中咕嘟咕嘟任务,可能你只需指定一个目的地捆绑任务不会使用?没有特定的代码,我只能对你的问题有一个模糊的理解。 –

下使用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')); 
}); 
+0

不得不添加* .css文件的处理,但它的工作就像一个魅力。谢谢! –