찾다

 >  Q&A  >  본문

node.js - gulp中gulp-rev-collector不起作用

gulp使用gulp-rev为文件添加时间戳,但是使用gulp-rev-collector替换时失败,是不是gulpfile中配置错误呢?
代码如下:

var gulp  = require('gulp');

var sass = require('gulp-sass');//编译sass
var cssMin = require('gulp-minify-css');//压缩css
var imageMin = require('gulp-imagemin');//压缩图片
var rev = require('gulp-rev');//MD5
var htmlmin = require('gulp-htmlmin');//压缩html
var revCollector = require('gulp-rev-collector');//替换时间戳


gulp.task('sass',function(){
    gulp.src('./SASS/*.scss')
        .pipe(sass())
        .pipe(cssMin())
        .pipe(rev())
        .pipe(gulp.dest('dist/stylesheet'))
        .pipe( rev.manifest() )
        .pipe( gulp.dest( 'rev/stylesheet' ) );
});

gulp.task('imagemin', function () {
    gulp.src('./images/*.{png,jpg,gif,ico}')
        .pipe(imageMin({
            optimizationLevel: 5, 
            progressive: true, 
            interlaced: true, 
            multipass: true 
        }))
        .pipe(rev())
        .pipe(gulp.dest('dist/images'))
        .pipe(rev.manifest())        
        .pipe(gulp.dest('./rev/images'));
});

gulp.task('revCollector', function () {

    gulp.src(['rev/**/*.json', './*.html'])
        .pipe( revCollector())
        .pipe(htmlmin())
        .pipe( gulp.dest('dist/'));
});
gulp.task('revCollectorCss', function () {
     gulp.src(['rev/**/*.json', './dist/stylesheet/*.css'])
        .pipe(revCollector())
        .pipe(gulp.dest('./dist/stylesheet'));
});


gulp.task('auto', function () {
    gulp.watch('./SASS/*.scss', ['sass'])
});




gulp.task('default', ['sass', 'auto','imagemin','revCollectorCss','revCollector']);

目录结构如下:

希望在当前目录生成dist:dist中有images和stylesheet文件夹,以及压缩过的index.html
运行gulp后,MD5添加没有问题,能生成rev下json,压缩都没有问题,但是不进行替换

请各路大神帮我看看gulp哪里写错了

天蓬老师天蓬老师2863일 전975

모든 응답(1)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-17 15:01:12

    문서를 주의 깊게 읽어보니 코드에 문제가 있는 것을 발견했는데 지금은 해결되었습니다. 주요 참고자료는 여기http://www.ydcss.com/archives...
    주요 문제는 각 작업의 종속성입니다. 이제 종속성을 추가한 후 매니페스트의 json 파일을 찾을 수 없을 가능성이 높습니다. 알겠습니다. 한 가지 기억해야 할 점은 호출 종속성 때문에 return의 반환 값을 사용하는 것이 가장 좋다는 것입니다.

    으아악

    회신하다
    0
  • 취소회신하다