Javascript 使用Gulp从数组中批量重命名图像
我想使用Gulp批量调整和重命名图像。我的任务是根据文件的尺寸重命名文件,但我希望在文件名中使用速记,如Javascript 使用Gulp从数组中批量重命名图像,javascript,image,optimization,gulp,rename,Javascript,Image,Optimization,Gulp,Rename,我想使用Gulp批量调整和重命名图像。我的任务是根据文件的尺寸重命名文件,但我希望在文件名中使用速记,如-small和-large,并在调整大小的过程中使用数值 我已经尝试在.forEach行中添加了几次key:value对数组迭代 [小:100,大:1000].forEach(函数(大小) [{small:100,large:1000}].forEach(函数(大小) …然后尝试在imageimageResize行中定位键/值,其中“k”将是键。这对我不起作用,到目前为止,我还没有成功地跟踪到
-small
和-large
,并在调整大小的过程中使用数值
我已经尝试在.forEach
行中添加了几次key:value对数组迭代
[小:100,大:1000].forEach(函数(大小)
[{small:100,large:1000}].forEach(函数(大小)
…然后尝试在imageimageResize
行中定位键/值,其中“k”将是键。这对我不起作用,到目前为止,我还没有成功地跟踪到这一部分
.pipe(rename(function (path) { path.basename = `${path.basename}-${size[k]}px`; }))
这是当前任务,它完成了任务。它根据size
调整图像大小,然后将size
作为字符串附加到文件名
// Optimize Images
gulp.task("images", function (done) {
[100, 1000].forEach(function (size) {
return gulp.src(imagesSRC)
.pipe(newer(imagesDestSite)) // get newer images
.pipe(imageResize({ width: size })) // resize each according to array above
.pipe(rename(function (path) { path.basename = `${path.basename}-${size}px`; })) // put size in filename
.pipe(imagemin())
.pipe(gulp.dest(imagesDest))
.pipe(browserSync.reload({stream:true}))
.pipe(gulp.dest(imagesDestSite))
});
done();
});
任务当前的输出如下所示:
image1-100px.jpg
图1-1000px.jpg
图像2-100px.jpg
image2-1000px.jpg
这是可行的,但我更希望输出如下:
image1-small.jpg
image1-large.jpg
image2-small.jpg
image2 large.jpg
任何指针都将非常感谢,请提前感谢!在
重命名
函数的主体中设置一个变量:if(size==1000)var foo=“large”
并在下一行设置path.basename
时使用foo
。如果不清楚,请告诉我。path.basename=`${path.basename}-${foo}`
Facepalm-我甚至没有想到使用if/else语句。我一直忘了Gulp只是JavaScript。你的建议很有效,谢谢!