以下是我的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中输出
答案 0 :(得分:2)
您可以使用“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是文件部分的一部分。 E.g:
imagemin: {
options: {
optimizationLevel: 3
},
build: {
files: {
expand: true,
flatten: true,
src: ['img/*.png', 'img/*.jpg', 'img/*.jpeg', 'img/*.gif'],
dest: 'img/min/'
}
}
}
答案 1 :(得分:0)
您应该使用cwd
,例如:
imagemin: {
dynamic: {
files: [{
expand: true,
cwd: 'src/img',
src: ['**/*.{png,jpg,gif,ico}'],
dest: 'www/img'
}],
},
},
此代码从src / img / *文件夹中获取图像并将其编译为www / src / *