2017-09-24 19 views
0

我想刪除一個目錄咕嘟咕嘟有助於建立任何地方命名爲.DS_Store任何文件。但是,Gulp並沒有通過它自己的管道傳遞所有文件,所以我認爲我不能在這裏用乙烯基做聰明的事情。相反,大多數文件是通過Gulp用child_process調用的靜態站點生成器生成的。使用Gulp.js刪除文件無論它的發現

的問題是,這個靜態網站生成器沒有一個參數,當它遇到他們的源目錄跳過這些類型的文件;它只會盲目地把它們帶過來。我不想要這些文件,所以我想讓Gulp在找到它們的任何地方刪除它們。

我試圖例如del(['output/**/.DS_Store'], cb);,但沒有奏效。有任何想法嗎?

更新:發現I need something fancier than del後,我試圖用glob來解決這個問題,但我必須被錯誤地做它:

const glob = require('glob'); 
const del = require('del'); 

gulp.task('build', function(cb) { 
    exec('pelican', function(err, stdout, stderr) { 
     console.log(stdout); 
     console.log(stderr); 
     cb(err); 
    }); 

    glob('output/**/.DS_Store', function(err, files) { 
     files.forEach(function(file) { 
      del([file]); 
     }); 
    }); 
}); 

更新2:沒有文件被刪除,因爲的結果但是,我注意到,如果我插入console.log(file);,則會輸出預期的文件。因此,也許我在正確的軌道上,但做錯了德爾...

回答

0

原來,我通過將exec塊與glob聲明相結合導致我自己的問題。它的工作,一旦我做了這些不同的任務,不得不爲execrmkjunkglob聲明任務build呼叫pelican

值得一提的這個創建需要順序與並行任務的新問題來運行,這this SO answer addresses。希望這有助於一些未來的困惑人士。