【问题标题】:Gulp zip missing some files in a folderGulp zip 缺少文件夹中的一些文件
【发布时间】:2017-04-19 08:08:44
【问题描述】:

我想创建 /dist 文件夹内所有文件和文件夹的 zip。

我的文件夹结构如下:

/dist 
    /audio/
    /css/
    /icons/
    /js/
    /libs/
    /locales/en-US
    /locales/mr
    /locales/hi
    /locales/te
    /locales/fr

我基本上想使用 gulp-zip 来压缩我的整个 /dist 文件夹和子文件夹,并将 zip 保存在其中。所以这就是我正在做的事情:

var bases = {
    app: 'app/',
    dist: 'dist/',
};    
gulp.task('zip', function () {
        return gulp.src(bases.dist + '**')
            .pipe(using())
            .pipe(zip('buildTest.zip'))
            .pipe(gulp.dest('./' + bases.dist));
    });

有了这个,我可以创建 buildTest.zip,但它不包括 /locales 中的所有子文件夹。请建议。

【问题讨论】:

    标签: gulp gulp-zip


    【解决方案1】:

    Gulp 尽可能以异步方式运行依赖任务,所以不要使用 zip 作为依赖任务,而是让 zip 任务依赖于构建任务,并让默认任务运行 zip 任务,如下所示

    const gulp = require('gulp');
    const zip = require('gulp-zip');
    
    gulp.task('build', ['copyAssets', 'minify-js', 'minify-css']);
    
    gulp.task('zip', ['build'], function() {
        gulp.src('dist/**')
            .pipe(zip('archive.zip'))
            .pipe(gulp.dest('./'))
    });
    
    gulp.task('default', ['clean'], function () {
      gulp.start('zip');
    });
    

    【讨论】:

    • 我正在使用相同的方法,但我仍然有文件丢失,虽然不是每次运行。
    • @KeesdeBruin:我为这个问题做了一些工作,这对我来说很好。我在 setTimeout 函数中添加了 gulp.start('zip'); 任务。 setTimeout(function () { gulp.start('zip'); }, 3000);
    • 有点晚了,但我已经设法重新排序和拆分了一些任务,现在它的行为应该没有使用gulp.start
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多