2016-04-07 16 views
0

ここで私は今何をしています。それは動作しますが、私はより多くのハエの名前を変更したい場合は、私は、タスクの多くで終わるつもりです:1つのタスクで2つのファイルの名前を変更またはコピーすることができます

gulp.task('rename_bundle_css', ['make_css_bundle'], function() { 
    return gulp.src('content/bundles/css.min.css') 
     .pipe(rename('css-' + md5File('content/bundles/css.min.css') + '.min.css')) 
     .pipe(gulp.dest('content/bundles/')); 
}); 

gulp.task('rename_bundle_css_zip', ['rename_bundle_css'], function() { 
    return gulp.src('content/bundles/css.min.css.gz') 
     .pipe(rename('css-' + md5File('content/bundles/css.min.css') + '.min.css.gz')) 
     .pipe(gulp.dest('content/bundles/')); 
}); 

私は1つまたはいくつかの方法Iのリネーム(またはコピーにこれら二つを組み合わせることができます方法はあります)複数のファイルを1つのタスクに入れますか?

あなたは、ストリーム内の各ファイルに対して次のプロパティを持つオブジェクトを受け取り gulp-renameに関数を渡すことができ

答えて

1

  • dirname:ファイルが
  • basenameにあるディレクトリへのパス:名ファイル拡張子
  • extnameないファイル:ファイルの拡張子

トンのいずれかを変更しますheseはファイルの名前を変更します。このように書き換え

あなたの例では、次のようになります。

gulp.task('rename_bundle_css', ['make_css_bundle'], function() { 
    return gulp.src(['content/bundles/css.min.css', 
        'content/bundles/css.min.css.gz']) 
    .pipe(rename(function(file) { 
     var original = file.basename + file.extname.replace(/\.gz$/, ''); 
     var hash = md5File('content/bundles/' + original); 
     file.basename = file.basename.replace(/^css/, 'css-' + hash); 
    })) 
    .pipe(gulp.dest('content/bundles/')); 
}); 
関連する問題