我一直在研究如何使用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']);
我需要帮助创建更新更新的最新文件,并从文件目录中删除以前的文件,或者只提供文件中的最新更新/更改。
我还使用了其他几个与rev相关的插件,但是没有找到正确的配置方式
答案 0 :(得分:0)
嗯,你有四个目的地位置的管道。
.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/'));
});
Here is post如果您想要修改软件包并将文件修订版职责留给源代码控制或构建服务器,则需要重新构想。