1. 程式人生 > >gulp-刪除檔案和資料夾

gulp-刪除檔案和資料夾

來自官網:http://www.gulpjs.com.cn/docs/recipes/delete-files-folder/

你也許會想要在編譯檔案之前刪除一些檔案。由於刪除檔案和檔案內容並沒有太大關係,所以,我們沒必要去用一個 gulp 外掛。最好的一個選擇就是使用一個原生的 node 模組。

因為 del 模組支援多個檔案以及 globbing,因此,在這個例子中,我們將使用它來刪除檔案:

$ npm install --save-dev  del

假想有如下的檔案結構:

.
├── dist
│   ├── report.csv
│   ├── desktop
│   └── mobile
│       ├── app.js
│       ├── deploy.json
│       └── index
.html └── src

在 gulpfile 中,我們希望在執行我們的編譯任務之前,將 mobile 檔案的內容先清理掉:

var gulp = require('gulp');
var del = require('del');

gulp.task('clean:mobile', function (cb) {
  del([
    'dist/report.csv',
    // 這裡我們使用一個通配模式來匹配 `mobile` 資料夾中的所有東西
    'dist/mobile/**/*',
    // 我們不希望刪掉這個檔案,所以我們取反這個匹配模式
    '!dist/mobile/deploy.json'
], cb); }); gulp.task('default', ['clean:mobile']);

在管道中刪除檔案

你可能需要在管道中將一些處理過的檔案刪除掉。

我們使用 vinyl-paths 模組來簡單地獲取 stream 中每個檔案的路徑,然後傳給 del 方法。

$ npm install --save-dev gulp del vinyl-paths

假想有如下的檔案結構:

.
├── tmp
│   ├── rainbow.js
│   └── unicorn.js
└── dist
var gulp = require('gulp');
var stripDebug = require
('gulp-strip-debug'); // 僅用於本例做演示 var del = require('del'); var vinylPaths = require('vinyl-paths'); gulp.task('clean:tmp', function () { return gulp.src('tmp/*') .pipe(stripDebug())
/*.pipe(vinylPaths(del))*/ //刪除原路徑的檔案.pipe(gulp.dest('dist')) .pipe(vinylPaths(del)); // 刪除處理過後儲存到(dist資料夾後的檔案) }); gulp.task('default', ['clean:tmp']);

只有在已經使用了其他的外掛之後才需要這樣做,否則,請直接使用 gulp.src 來代替。