我正在使用grunt-image-resize
(https://github.com/excellenteasy/grunt-image-resize)来调整图片大小。但我的问题是Grunt以及我们可以在任务中插入文件名称的方式。
想法是拍摄大背景图像并调整大小并将它们保存在相同文件夹中,例如在文件名中附加_small
之类的内容。现在,我正在做的是:
image_resize: {
bg: {
options: {
width: 640,
quality: 0.5,
overwrite: true
},
files: [{
expand: true,
cwd: '<%= pkg.path.images_source %>/bg',
src: ['{,*/}*.{gif,jpeg,jpg,png}'],
dest: '<%= pkg.path.images_source %>/bg/mobile'
}]
}
}
有效地将处理过的文件保存到名为mobile
的子文件夹中。但我真正想要的是:
dest: '<%= pkg.path.images_source %>/bg/{filename}_small.{fileextension}'
Grunt可以轻松实现这一目标吗?在SO上找不到任何东西我真的不知道该找什么......
提前致谢!
更新
我可以在tmp
文件夹中输出图像,然后使用grunt-contrib-copy
以不同的名称将它们保存在根文件夹中,但是我认为它变得非常乏味......我是寻找更清洁,更快捷的方式。
答案 0 :(得分:2)
您可以使用目的地名称来重命名功能:
files: [{
// ...
rename: function(dest, src) {
var path = require('path'),
basename = path.basename(src),
ext = path.extname(file),
filename = basename.replace(ext, '');
return path.join(dest, filename + '_small' + ext)
}
}]