Gulp 修订中

Gulp Revisioning

我一直在研究如何使用 gulp 构建系统自动化开发过程。

我在修改样式表时遇到了一些问题。我已经使用 gulp-rev 生成带有更新修订号的文件,但它会继续在文件内的任何更改上创建额外的文件,从而增加我的设置大小。

gulpfile.js

var gulp = require('gulp');
var watchLess = require('gulp-watch-less');
var less = require('gulp-less');
var plumber = require('gulp-plumber');
var watch = require('gulp-watch');
var rev = require('gulp-rev');
var revReplace = require('gulp-rev-replace');
var cleanCSS = require('gulp-clean-css');
var autoprefixer = require('gulp-autoprefixer');
var revAppend = require('gulp-rev-append');

//LESS
gulp.task('less', function() {
    return gulp.src('assets/less/*.less')
        .pipe(watchLess('assets/less/*.less'))
        .pipe(less())
        .pipe(autoprefixer({
            browsers: ['> 0%'],
            cascade: false
        }))
        .pipe(cleanCSS())
        .pipe(gulp.dest('assets/css/'))
        .pipe(rev())
        .pipe(gulp.dest('assets/css/'))
        .pipe(revAppend())
        .pipe(gulp.dest('assets/css'))
        .pipe(rev.manifest())
        .pipe(gulp.dest('assets/'));
});

//Watch
gulp.task('watch', function(){
    gulp.watch('assets/less/*.less', ['less']);
})

//Default
gulp.task('default', ['watch']);

我需要帮助创建包含更新更改的最新文件,并从文件目录中删除以前的文件,或者只给我包含最新 update/changes 的文件。

我也用过其他几个与rev相关的插件,但没有找到正确的配置方式

好吧,您有四个带有目标位置的管道。

.pipe(gulp.dest('assets/css/'))
.pipe(gulp.dest('assets/css/'))
.pipe(gulp.dest('assets/css'))
.pipe(gulp.dest('assets/'));

三个同一个目的地。期望在管道中的不同阶段拥有所有文件的三个副本。使用 gulp-rev,您需要一个额外的清单管道,但这仍然留给我们 2 个而不是 4 个。

尝试:

//LESS
gulp.task('less', function() {
    return gulp.src('assets/less/*.less')
        .pipe(watchLess('assets/less/*.less'))
        .pipe(less())
        .pipe(autoprefixer({
            browsers: ['> 0%'],
            cascade: false
        }))
        .pipe(cleanCSS())
        .pipe(rev())
        .pipe(revAppend())
        .pipe(gulp.dest('assets/css'))
        // WARNING!!! Put the manifest after all the file pipes
        .pipe(rev.manifest())
        .pipe(gulp.dest('assets/'));
});

如果您想修改您的包并将文件修改责任留给您的源代码管理或构建服务器,请重新查看。