使用gulp重命名重命名文件并添加索引

时间:2015-10-19 18:22:06

标签: gulp gulp-rename

我需要重命名一批照片,为它们添加索引,例如'image-1-tmb'或'image-23-tmb'。我已经搜索了这个并没有找到它,甚至没有找到它。

这是我的实际代码:

TypeAttributes.Abstract

2 个答案:

答案 0 :(得分:1)

使用gulp-rename

var rename = require("gulp-rename");

然后添加到您的管道:     gulp.task( 'rsz_tmb_menu',函数(){

  var index = 0;

gulp.src('your_glob')
  .pipe(your processing func)
  .pipe(rename(function (path) {
  path.basename += ("-" + index++);
 }))
.pipe(...dst...)

答案 1 :(得分:0)

我想这样做可以附加原始图片的大小...... 就我而言,这是a requirement of photoswipe

尝试用gulp做这件事,不幸的是,即使在尝试追加当前图片的大小时我也会陷入困境:

var sizeOf = require('image-size');

(...)

.pipe(rename(function (path) {
  var dimensions = sizeOf(path);
  path.basename += ("-" + dimensions.width + "x" +  dimensions.height);
 }))

引发错误:

node_modules/image-size/lib/index.js:79
throw new TypeError('invalid invocation');

回答我自己的问题,以防有人帮助 基于http://www.pixeldonor.com/2014/feb/20/writing-tasks-gulpjs/

return gulp.src(...)
.pipe(through.obj(function (chunk, enc, cb) {
        dimensions = sizeOf(chunk.path);
        extname = Path.extname(chunk.path);
        dirname = Path.dirname(chunk.path);
        basename = Path.basename(chunk.path, extname);
        chunk.path = Path.join(dirname, basename + "-" + dimensions.width + "x" + dimensions.height + extname);
        this.push(chunk);
        cb(null, chunk);
}))
.pipe(imageResize({
        width : 600,
        height : 600,
        crop : true,
        upscale : true
}))
.pipe(gulp.dest(...));
相关问题