gulp-rev создает каталог внутри каталога назначения
Прежде всего, я хотел бы сказать, что Gulp (для меня) создает больше проблем, а не решает их.
Я написал gulpfile, который объединяет некоторые CSS-файлы и помещает их в каталог. Код для этой задачи следующий:
var config = {
mainDir: 'app/assets'
};
config.stylesFiles = [
'bower_resources/admin-lte/dist/css/AdminLTE.min.css',
'bower_resources/admin-lte/dist/css/skins/_all-skins.min.css',
'css/app.css'
];
....
gulp.task('styles', function() {
return gulp
.src(config.stylesFiles, { cwd: config.mainDir })
.pipe(sourcemaps.init())
.pipe(concat('theme.css'))
.pipe(sourcemaps.write('../build/css'))
.pipe(gulp.dest('public/css/'))
.on('end', function() { gutil.log('Styles copied') });
});
Это очень просто и работает отлично.
Но я бы хотел версии этого сгенерированного файла. Поэтому я написал конкретное задание для этого:
....
config.manifestFolder = process.cwd() + '/public/build';
gulp.task('versionCSS', function() {
return gulp
.src(['css/theme.css'], { cwd: 'public' })
.pipe(rev())
.pipe(gulp.dest('public/build/css'))
.pipe(rev.manifest(
{
base: config.manifestFolder,
cwd: config.manifestFolder,
merge: true
}
))
.pipe(gulp.dest(config.manifestFolder))
.on('end', function() { gutil.log('CSS files versioned') });
});
Проблема в том, что когда Gulp собирается запустить эту задачу, он создает папку внутри целевой папки.
После запуска Gulp я получаю такую структуру:
- public
- build
- css (destination folder for the versioned file)
- css (folder created by Gulp)
- versioned file that should be in the parent folder
- css
- concatenated file without version
Я действительно не знаю, что делать дальше. Я уже установил cwd
а также base
варианты для dest
а также src
функции, изменили места назначения, синхронизировали задачи и т. д. Ничто не решает это глупое поведение.