2017-04-19 93 views
2

我想創建/ dist文件夾內所有文件和文件夾的zip文件。Gulp zip缺少文件夾中的某些文件

我的文件夾結構,如:

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

我基本上想用一口-ZIP到拉鍊拉上我的整個/ DIST文件夾和子文件夾和保存裏面的拉鍊。因此,這是我在做什麼:

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.Please建議所有子文件夾。

回答

1

咕嘟咕嘟運行在異步的方式依賴任務儘可能,所以不是用拉鍊作爲依賴任務,使拉鍊任務依賴於建設任務,並將默認任務運行壓縮任務,如跟隨

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'); 
}); 
+0

我正在使用相同的方法,但我仍然缺少文件,雖然不是每次運行。 –

+0

@KeesdeBruin:我爲這個問題做了一些工作,這對我來說工作得很好。我在setTimeout函數中添加了** gulp.start('zip'); **任務。 ()函數(){ gulp.start('zip'); },3000); –

+0

有點遲了,但我設法重新排序和分割一些任務,現在它的行爲應該不用'gulp.start' –