2016-05-30 55 views
0

我們有一個現有的Angular 1項目,我們希望逐漸引入Angular 2組件,並最終轉換爲Angular 2.該項目不是使用Typescript或模塊加載器編寫的,現在轉換整個過程將會過於現實。但Angular 2組件將用Typescript編寫,並將使用模塊加載器(SystemJS)。如何在Gulp中排除從Typescript編譯的JavaScript文件?

傳統JavaScript代碼通過現有的gulp腳本捆綁在一起。我想對該gulp腳本進行最小限度的修改,以便忽略從typescript編譯的javascript模塊。我的想法是嘗試排除具有相同基本名稱的相同文件夾中具有相應.ts文件的.js文件。我只是無法弄清楚如何做到這一點吞嚥。

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

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

相關問題