无法使用grunt imagemin优化文件夹内的图像

Sal*_*ali 6 gruntjs grunt-contrib-imagemin

我正在尝试用grunt的imagemin模块优化图像.

我的目录结构以下列方式查找:

  • publicImg
    • 主要
    • 上载
      • 文件夹1
      • ...
      • folderN

每个文件夹1..N内都有文件.所有这些都是.jpg

我想要实现的是尝试优化所有这些并使用更新版本(具有相同名称)更改它们.我开始用一个更简单的任务来优化它们并复制到另一个文件夹(publicImages)保留相同的结构.

查看文档,我想出了以下JSON:

imagemin: {
    dynamic: {
        files: [{
            expand: true,
            cwd: 'publicImg/',
            src: ['*.jpg'],
            dest: 'publicImages/'
        }]
    }
}
Run Code Online (Sandbox Code Playgroud)

告诉我Minified 0 images (saved 0 B),我试图使用**/*jpg,**/*.{jpg}但仍然具有相同的效果.如何正确完成?

rai*_*dev 2

下一个配置完全适合我。在您描述的环境上进行了测试。

\n\n

包.json

\n\n
{\n  "devDependencies": {\n    "grunt": "^0.4.5",\n    "grunt-contrib-imagemin": "^0.7.1"\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

Gruntfile.js

\n\n
module.exports = function (grunt) {\n  grunt.initConfig({\n    imagemin: {\n      dynamic: {\n        files: [{\n          expand: true,\n          cwd: \'publicImg/\',\n          src: [\'**/*.jpg\'],\n          dest: \'publicImages/\'\n        }]\n      }\n    }\n  });\n\n  grunt.loadNpmTasks(\'grunt-contrib-imagemin\');\n  grunt.registerTask(\'default\', [\'imagemin\']);\n};\n
Run Code Online (Sandbox Code Playgroud)\n\n

输出

\n\n
raiden@toluca:~/projects/test$ tree publicImg/\npublicImg/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 upload\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 folder1\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 2499085-metal-gear-solid-5-exteded-e3.jpg\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 url.htm\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 folder2\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 metal-gear-solid-5-ground-zeroes-collectibles.jpg\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 folder3\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 2574364-8751006069-14019.jpg\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Metal-Gear-Solid-5-The-Phantom-Pain-Trailer.jpg\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 Metal_Gear_Solid_V_Screenshot.jpg\n\n5 directories, 6 files\nraiden@toluca:~/projects/test$ grunt\nRunning "imagemin:dynamic" (imagemin) task\n\xe2\x9c\x94 publicImg/upload/folder1/2499085-metal-gear-solid-5-exteded-e3.jpg (saved 8.99 kB - 7%)\n\xe2\x9c\x94 publicImg/upload/folder2/metal-gear-solid-5-ground-zeroes-collectibles.jpg (saved 8.5 kB - 25%)\n\xe2\x9c\x94 publicImg/upload/folder3/2574364-8751006069-14019.jpg (already optimized)\n\xe2\x9c\x94 publicImg/upload/folder3/Metal-Gear-Solid-5-The-Phantom-Pain-Trailer.jpg (saved 2.22 kB - 3%)\n\xe2\x9c\x94 publicImg/upload/folder3/Metal_Gear_Solid_V_Screenshot.jpg (already optimized)\nMinified 5 images (saved 19.71 kB)\n\nDone, without errors.\nraiden@toluca:~/projects/test$ tree publicImages/\npublicImages/\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 upload\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 folder1\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 2499085-metal-gear-solid-5-exteded-e3.jpg\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 folder2\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 metal-gear-solid-5-ground-zeroes-collectibles.jpg\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 folder3\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 2574364-8751006069-14019.jpg\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Metal-Gear-Solid-5-The-Phantom-Pain-Trailer.jpg\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 Metal_Gear_Solid_V_Screenshot.jpg\n\n4 directories, 5 files\n
Run Code Online (Sandbox Code Playgroud)\n\n

也许您的 grunt-contrib-imagemin 安装有问题。尝试一下npm rebuild grunt-contrib-imagemin,看看是否有错误。或者通过 更新模块npm update grunt-contrib-imagemin

\n