Программная передача имени каталога в виде строки в gulp-rename
Можно ли передать имя родительского каталога в 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'))
});
Конечный результат будет выглядеть так:
- Dev
- Сценарии
- начальная загрузка
- Src
- alert.js (файл)
- alert.js.map (файл)
- alert.min.js (файл)
- tooltip.js (файл)
- tooltip.js.map (файл)
- tooltip.min.js (файл)
- alert.js (файл)
- bootstrap.js
- bootstrap.min.js
- Src
- Fontawesome
- Src
- файл-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 (файл)
- file-3.min.js (файл)
- файл-1.js
- fontawesome.js
- fontawesome.min.js
- Src
- начальная загрузка
- Сценарии
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];
}))