ファイルとフォルダの削除

あなたはビルドを開始する前に、あるファイルを削除したいと考えるかもしれません。 ファイルの削除は、ファイルの内容によって形成されるものではないため、 gulpプラグインを使用するのは理に叶っているとは言えません。 これは素のnodeモジュールを使用する良い機会と言えるでしょう。

この例で、複数のファイルとglobbingをサポートするdelモジュールを使用してみましょう。

$ npm install --save-dev gulp 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'フォルダ内部の全てにマッチさせるために、globbingパターンを使用
    'dist/mobile/**/*',
    // このファイルは削除したくないため、パターンを打ち消し
    '!dist/mobile/deploy.json'
  ], cb);
});

gulp.task('default', ['clean:mobile']);

パイプライン内でファイルを削除

あなたは、パイプラインでの処理後に特定のファイルを削除したいと考えるかもしれません。

vinyl-pathsを使用することで、 簡単にストリーム内でファイルのパスを取得し、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'); // only as an example
var del = require('del');
var vinylPaths = require('vinyl-paths');

gulp.task('clean:tmp', function () {
  return gulp.src('tmp/*')
    .pipe(stripDebug())
    .pipe(gulp.dest('dist'))
    .pipe(vinylPaths(del));
});

gulp.task('default', ['clean:tmp']);

既にパイプライン内で他のプラグインを使用している場合にのみ、これを使用してください。 gulp.srcに直接このモジュールを使用するのはコストが高すぎます。

 Back to top

© 2010 - 2017 STUDIO KINGDOM