102

現在、gulp を使用して、dist/ディレクトリをクリーンアップし、適切なファイルをクリーンなディレクトリに移動する bash スクリプトを呼び出しています。スクリプトが *nix 以外のファイル システムで動作するかどうかわからないため、これを gulp で実行したいと考えています。
これまでのところ、gulp-clean モジュールを使用してdist/ディレクトリをクリーンアップしていますが、必要なディレクトリとそのファイルを dist フォルダーに移動しようとすると、ディレクトリが空になります。

var gulp = require('gulp'),
    clean = require('gulp-clean');

gulp.task('clean', function(){
  return gulp.src(['dist/*'], {read:false})
  .pipe(clean());
});

gulp.task('move',['clean'], function(){
  gulp.src(['_locales', 'icons', 'src/page_action', 'manifest.json'])
  .pipe(gulp.dest('dist'));
});

gulp.task('dist', ['move']);

を呼び出すとgulp distdist/ディレクトリに正しいディレクトリが取り込まれますが、それらはすべて空です

$ ls dist/*
dist/manifest.json

dist/_locales:

dist/icons:

dist/page_action:

dist/ディレクトリとその内容をフォルダにコピーするにはどうすればよいですか?

4

2 に答える 2

168

basesrc にオプションを含める必要があります。これにより、ファイル構造が希望どおりに保持されます。

var filesToMove = [
        './_locales/**/*.*',
        './icons/**/*.*',
        './src/page_action/**/*.*',
        './manifest.json'
    ];

gulp.task('move',['clean'], function(){
  // the base option sets the relative root for the set of files,
  // preserving the folder structure
  gulp.src(filesToMove, { base: './' })
  .pipe(gulp.dest('dist'));
});

また、これらのソース ファイルがすべてプロジェクトのルートにあると、後で問題が発生する可能性があります。

可能であればsrc/、1 つのフォルダーを使用して、アプリケーション固有のファイルをすべてそこに移動することをお勧めします。これにより、メンテナンスが容易になり、ビルド固有のファイルがアプリケーション固有のファイルと混同されるのを防ぐことができます。

これを行う場合は、上記の例で出現./するすべての を単純に置き換えます。src/

于 2014-02-04T15:51:41.393 に答える