0

是否可以将父目录的名称传递给 gulp-rename 或任何其他重命名插件?我正在尝试以编程方式连接“src”文件夹中的所有文件,并用其父目录的名称重命名它们。下面的代码是我到目前为止所拥有的。

gulp.task('js-test', function() {
    return gulp.src('dev/scripts/**/src/*.min.js')
        .pipe(concat('interim-name.js'))
        .pipe(rename('How do I give it the name of the parent directory of src'))
        .pipe(gulp.dest('dev/scripts'))
});

最终结果将如下所示:

  • 开发
    • 脚本
      • 引导程序
          • alert.js(文件)
            • alert.js.map(文件)
            • alert.min.js(文件)
          • tooltip.js(文件)
            • tooltip.js.map(文件)
            • tooltip.min.js(文件)
        • 引导程序.js
        • bootstrap.min.js
      • 真棒
          • 文件 1.js
            • file-1.js.map(文件)
            • file-1.min.js(文件)
          • 文件 2.js
            • file-2.js.map(文件)
            • file-2.min.js(文件)
          • 文件 3.js
            • file-3.js.map(文件)
            • 文件 3.min.js(文件)
        • fontawesome.js
        • fontawesome.min.js
4

1 回答 1

1

gulp-rename可以选择使用函数,例如来自文档:

// rename via function 
gulp.src("./src/**/hello.txt")
 .pipe(rename(function (path) {
     path.dirname += "/ciao";
     path.basename += "-goodbye";
     path.extname = ".md"
 }))
 .pipe(gulp.dest("./dist")); // ./dist/main/text/ciao/hello-goodbye.md 

所以我会注销 path.dirname 然后对其进行字符串操作:

.pipe(rename(function (path) {

   // I use nodePath.sep here but you may have to require path for it to work
   // var nodePath = require('path');
   // but maybe just path.sep without the require will work just fine

   var temp = path.dirname.split(nodePath.sep);
   path.basename = temp[some index here];
}))
于 2017-07-27T19:26:20.170 回答