【发布时间】:2017-01-18 01:00:13
【问题描述】:
我正在使用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 回调中获取初始文件路径?
【问题讨论】:
-
some/应该是path.dirname.split('some/')中的其他内容吗? -
@MattMS 谢谢,已更正。我的意思是
path.dirname.split('dir/')
标签: javascript node.js gulp gulp-rename