Javascript 使用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”将是键。这对我不起作用,到目前为止,我还没有成功地跟踪到

我想使用Gulp批量调整和重命名图像。我的任务是根据文件的尺寸重命名文件,但我希望在文件名中使用速记,如
-small
-large
,并在调整大小的过程中使用数值

我已经尝试在
.forEach
行中添加了几次key:value对数组迭代

[小:100,大:1000].forEach(函数(大小)
[{small:100,large:1000}].forEach(函数(大小)

…然后尝试在image
imageResize
行中定位键/值,其中“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。你的建议很有效,谢谢!