下一个配置完全适合我。在您描述的环境中测试。
包.json:
{
"devDependencies": {
"grunt": "^0.4.5",
"grunt-contrib-imagemin": "^0.7.1"
}
}
Gruntfile.js:
module.exports = function (grunt) {
grunt.initConfig({
imagemin: {
dynamic: {
files: [{
expand: true,
cwd: 'publicImg/',
src: ['**/*.jpg'],
dest: 'publicImages/'
}]
}
}
});
grunt.loadNpmTasks('grunt-contrib-imagemin');
grunt.registerTask('default', ['imagemin']);
};
输出:
raiden@toluca:~/projects/test$ tree publicImg/
publicImg/
├── main
└── upload
├── folder1
│ ├── 2499085-metal-gear-solid-5-exteded-e3.jpg
│ └── url.htm
├── folder2
│ └── metal-gear-solid-5-ground-zeroes-collectibles.jpg
└── folder3
├── 2574364-8751006069-14019.jpg
├── Metal-Gear-Solid-5-The-Phantom-Pain-Trailer.jpg
└── Metal_Gear_Solid_V_Screenshot.jpg
5 directories, 6 files
raiden@toluca:~/projects/test$ grunt
Running "imagemin:dynamic" (imagemin) task
✔ publicImg/upload/folder1/2499085-metal-gear-solid-5-exteded-e3.jpg (saved 8.99 kB - 7%)
✔ publicImg/upload/folder2/metal-gear-solid-5-ground-zeroes-collectibles.jpg (saved 8.5 kB - 25%)
✔ publicImg/upload/folder3/2574364-8751006069-14019.jpg (already optimized)
✔ publicImg/upload/folder3/Metal-Gear-Solid-5-The-Phantom-Pain-Trailer.jpg (saved 2.22 kB - 3%)
✔ publicImg/upload/folder3/Metal_Gear_Solid_V_Screenshot.jpg (already optimized)
Minified 5 images (saved 19.71 kB)
Done, without errors.
raiden@toluca:~/projects/test$ tree publicImages/
publicImages/
└── upload
├── folder1
│ └── 2499085-metal-gear-solid-5-exteded-e3.jpg
├── folder2
│ └── metal-gear-solid-5-ground-zeroes-collectibles.jpg
└── folder3
├── 2574364-8751006069-14019.jpg
├── Metal-Gear-Solid-5-The-Phantom-Pain-Trailer.jpg
└── Metal_Gear_Solid_V_Screenshot.jpg
4 directories, 5 files
也许你的 grunt-contrib-imagemin 安装有问题。尝试做npm rebuild grunt-contrib-imagemin
,看看有没有错误。或更新模块npm update grunt-contrib-imagemin
。