Не удается оптимизировать изображения внутри папки с помощью grunt imagemin
Я пытаюсь оптимизировать изображения с помощью модуля imagemin grunt.
Моя структура каталогов выглядит следующим образом:
- publicImg
- главный
- загружать
- folder1
- ...
- folderN
Внутри каждой из папок 1..N есть файлы. Все они.jpg
Чего я хочу добиться, так это попытаться оптимизировать их все и заменить их более новыми версиями (с тем же именем). Я начал с более простой задачи, чтобы оптимизировать их и скопировать в другую папку (publicImages
сохранение той же структуры.
Просматривая документацию, я придумал следующий фрагмент JSON:
imagemin: {
dynamic: {
files: [{
expand: true,
cwd: 'publicImg/',
src: ['*.jpg'],
dest: 'publicImages/'
}]
}
}
что говорит мне Minified 0 images (saved 0 B)
Я пытался использовать **/*jpg
, **/*.{jpg}
но все же с тем же эффектом. Как это можно сделать правильно?
1 ответ
Следующий конфиг у меня полностью работает. Проверено на вашей описанной среде.
package.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
,