Gulp 如何复制使用前缀重命名的图像?
我有下面的数组:Gulp 如何复制使用前缀重命名的图像?,gulp,gulp-rename,Gulp,Gulp Rename,我有下面的数组: var imageFiles = { 'bootstrap-fileinput': 'bower/bootstrap-fileinput/dist/img/*', 'some-other-thing': 'bower/some-other-thing/dist/img/*' }; 如果需要,我可以重新构造,只要有前缀和该前缀的路径 如何使gulp将图像复制到所需的单个文件夹中,但在每个文件夹前面加上数组中的前缀?指: bower/bootstrap文件
var imageFiles = {
'bootstrap-fileinput': 'bower/bootstrap-fileinput/dist/img/*',
'some-other-thing': 'bower/some-other-thing/dist/img/*'
};
如果需要,我可以重新构造,只要有前缀和该前缀的路径
如何使gulp将图像复制到所需的单个文件夹中,但在每个文件夹前面加上数组中的前缀?指:
bower/bootstrap文件输入/dist/img/arrow.jpg=>
/images/bootstrap-fileinput_arrow.jpg
bower/some other thing/dist/img/arrow.jpg=>
/images/some-other-thing_arrow.jpg
27.08.14:
我是否正确理解,我描述的任务不能仅使用一根管道来完成?在@Doodlebot提供的解决方案中,正如我所看到的,每个文件都是独立地、顺序地通过管道传输的。我可以使用gulp rename插件来完成这项工作:
var gulp = require('gulp');
var rename = require('gulp-rename');
gulp.task('default', function() {
var imageFiles = {
'bootstrap-fileinput': 'bower/bootstrap-fileinput/dist/img/*',
'some-other-thing': 'bower/some-other-thing/dist/img/*'
}
Object.keys(imageFiles).forEach(function(key) {
gulp.src(imageFiles[key])
.pipe(rename({
prefix: key
}))
.pipe(gulp.dest('images/'));
});
});
仅供参考:在Node(和现代浏览器)中,您可以使用
Object.keys(imageFiles).forEach(function(key){…})
迭代键,而不用担心hasOwnProperty
。我是否正确理解,我描述的任务不能仅使用一根管道来完成?在您提供的解决方案中,正如我所看到的,每个文件都是独立地、顺序地进行管道传输的。是的,因为每个src都有不同的重命名前缀。您可能会在重命名管道之后合并流并使用单个dest管道,但我不确定增加的复杂性是否会带来任何好处。