![](/img/trans.png)
[英]Error: spawn ENOENT for png files when using grunt-contrib-imagemin
[英]grunt-contrib-imagemin outputting files to the wrong folder
這是我的Gruntfile.js引用iamgemin的部分:
imagemin: {
options: {
optimizationLevel: 3
},
build: {
expand: true,
src: ['img/*.png', 'img/*.jpg', 'img/*.jpeg', 'img/*.gif'],
dest: 'img/min/'
}
}
我有/ img目錄中的文件,並希望壓縮版本在/ img / min。
當我運行grunt時,壓縮文件最終會出現在/ img / min / img中,這不是我想要的。
有任何想法嗎? 指定cwd似乎什么都不做。
編輯:這是我目前的Gruntfile
imagemin: {
options: {
optimizationLevel: 3,
flatten: true
},
build: {
expand: true,
src: ['src/img/*.{png,jpg,jpeg,gif}'],
dest: 'build/img/'
}
}
指定cwd什么也沒做。 文件當前被轉儲到/build/img/src/img/1.jpg中。 我希望它們能在/build/img/1.jpg中輸出
您可以使用“flatten:true”選項使文件以img / min結束,無論它們來自何處。
或者,實際上,您應該能夠使用cwd,如下所示:
imagemin: {
options: {
optimizationLevel: 3
},
build: {
files: {
cwd: 'img',
expand: true,
src: ['*.png', '*.jpg', '*.jpeg', '*.gif'],
dest: 'img/min/'
}
}
}
更新 :僅為記錄,您可以使用更緊湊的表示法:['*。{png,jpg,jpeg,gif}']作為您的來源。
有關詳細信息,請參閱http://gruntjs.com/configuring-tasks#building-the-files-object-dynamically 。
更新2 :正如文檔中所指出的,flatten:true是文件部分的一部分。 例如:
imagemin: {
options: {
optimizationLevel: 3
},
build: {
files: {
expand: true,
flatten: true,
src: ['img/*.png', 'img/*.jpg', 'img/*.jpeg', 'img/*.gif'],
dest: 'img/min/'
}
}
}
你應該使用cwd
,例如:
imagemin: {
dynamic: {
files: [{
expand: true,
cwd: 'src/img',
src: ['**/*.{png,jpg,gif,ico}'],
dest: 'www/img'
}],
},
},
此代碼從src / img / *文件夾中獲取圖像並將其編譯為www / src / *
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.