我正在使用gulp-rename重命名文件。
我想从几个目录中获取文件并将它们放入带有一些后缀的输出目录中。
此后缀取决于原始目录名称:
['/dir/a/style.css', '/dir/b/style.css', '/dir/c/style.css']
=>['/output/style_a.css', '/output/style_b.css', '/output/style_c.css']
我做这样的事情:
var gulp = require('gulp'),
rename = require('gulp-rename'),
files_list = [
'/dir/a/style.css',
'/dir/b/style.css',
'/dir/c/style.css'
];
gulp.src(files_list)
.pipe(rename(function(path) {
// extract dir letter:
var dir_letter = path.dirname.split('dir/')[1].split('/')[0];
// rename file by changing "path" object:
path.basename += '_' + dir_letter;
}))
.pipe(gulp.dest('/output'));
方法rename
为每个文件迭代回调。
此回调将对象path
作为参数,它包含dirname
属性。
但 path.dirname
具有价值'.'
,而不是像'/dir/a/style.css'
.
所以,我的问题是如何在rename
回调中获取初始文件路径?