首先,我想说 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
我真的不知道该怎么办了。我已经为and函数设置了cwd
andbase
选项,更改了目的地,同步了任务等。没有什么能解决这个愚蠢的行为。dest
src