0

首先,我想说 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函数设置了cwdandbase选项,更改了目的地,同步了任务等。没有什么能解决这个愚蠢的行为。destsrc

4

0 回答 0