2016-02-02 45 views

回答

0

您可以使用gulp-rename package并为其提供一个自定义函数,用于在文件通过时对其进行重命名。使用path包一些实用工具,创建一个构造函数生成计数器的一个新的哈希表,瞧:

'use strict'; 

var gulp = require('gulp'), 
    rename = require('gulp-rename'), 
    path = require('path'); 

gulp.task('default', [], function() { 
    var renamer = new Renamer(); 

    gulp.src('img/**/*.*') 
     .pipe(rename(renamer.folderToImgName)) 
     .pipe(gulp.dest('.build/images')); 
}); 

function Renamer() { 
    var countersHashTable = {}; 

    function folderToImgName(fileInfo) { 
     var baseName = path.basename(fileInfo.dirname); 

     countersHashTable[baseName] = countersHashTable[baseName] || 1; 

     fileInfo.basename = baseName + countersHashTable[baseName].toLocaleString(); 

     // If you want a flat folder structure: 
     //fileInfo.dirname = path.dirname(fileInfo.dirname); 

     countersHashTable[baseName]++; 
    } 

    this.folderToImgName = folderToImgName; 
} 

this answer by @OverZaelous部分混音。

相关问题