Node.js 如何优化所有子文件夹中的图像以保持文件夹结构?

Node.js 如何优化所有子文件夹中的图像以保持文件夹结构?,node.js,ubuntu,optimization,Node.js,Ubuntu,Optimization,我在每个文件夹中都有一组文件夹和图像。如下所示: + Folder 1 Image1.jpg + Folder 2 Image1.jpg + Folder 3 Image3.jpg .... 我正在尝试使用“imagemin”node.js packag优化文件夹中的所有图像,代码如下: const imagemin = require('imagemin'); const imageminMozjpeg = require('imagemin-mozjp

我在每个文件夹中都有一组文件夹和图像。如下所示:

+ Folder 1
     Image1.jpg
+ Folder 2
     Image1.jpg
+ Folder 3
     Image3.jpg
....
我正在尝试使用“imagemin”node.js packag优化文件夹中的所有图像,代码如下:

    const imagemin = require('imagemin');
const imageminMozjpeg = require('imagemin-mozjpeg');
const imageminPngquant = require('imagemin-pngquant');

imagemin(['images/**/*.{jpg,png,jpeg,JPG,JPEG,PNG}'], 'images/dist', {
    plugins: [
        imageminMozjpeg(),
        imageminPngquant({quality: '20-35'})
    ]
}).then(files => {
    console.log(files);
    //=> [{data: <Buffer 89 50 4e …>, path: 'build/images/foo.jpg'}, …]
});
const imagemin=require('imagemin');
const imageminMozjpeg=require('imagemin-mozjpeg');
常量imageminPngquant=require('imagemin-pngquant');
imagemin(['images/***.{jpg,png,jpeg,jpg,png}'],'images/dist'{
插件:[
imageminMozjpeg(),
imageminPngquant({quality:'20-35'})
]
})。然后(文件=>{
console.log(文件);
//=>[{data:,路径:'build/images/foo.jpg'},]
});

我可以使用单个文件夹作为目标。有没有办法覆盖图像或保持相同的文件夹结构?

事实上,imagemin不提供参数来保持文件夹结构。 通过逐个压缩图像是一种解决方案,请查看我的示例代码:

const imagemin = require('imagemin');
const imageminPngquant = require('imagemin-pngquant');
const globby = require('globby');
const path = require('path');

// here we got each pic path
globby('png/**/*.png', { nodir: true }).then(filePaths => {
    filePaths.forEach(filePath => {
        let fileDir = path.dirname(filePath);
        doCompress(filePath, 'out/' + fileDir);
    })
});

function doCompress(srcFile, outDir) {
    imagemin([srcFile], outDir, {
        use: [
            imageminPngquant({
                quality: '80',
                speed: 4
            })]
    }).then((ret) => {
        // todo something
    });
}

谢谢你的回答。我的案子有什么解决办法?你能帮忙吗?-1票,因为回答不正确,没有帮助。作者没有使用Gulp,而是使用imagemin的nodejs实现。