如何在Gulp中排除从Typescript编译的JavaScript文件?
问题描述:
我们有一个现有的Angular 1项目,我们希望逐渐引入Angular 2组件,并最终转换为Angular 2.该项目不是使用Typescript或模块加载器编写的,现在转换整个过程将会过于现实。但Angular 2组件将用Typescript编写,并将使用模块加载器(SystemJS)。如何在Gulp中排除从Typescript编译的JavaScript文件?
传统JavaScript代码通过现有的gulp脚本捆绑在一起。我想对该gulp脚本进行最小限度的修改,以便忽略从typescript编译的javascript模块。我的想法是尝试排除具有相同基本名称的相同文件夹中具有相应.ts文件的.js文件。我只是无法弄清楚如何做到这一点吞咽。
答
下使用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文件的处理,但它的工作就像一个魅力。谢谢! –
对于编译打字稿中咕嘟咕嘟任务,可能你只需指定一个目的地捆绑任务不会使用?没有特定的代码,我只能对你的问题有一个模糊的理解。 –