【问题标题】:How can I pipe a Zip into another Zip如何将一个 Zip 管道传输到另一个 Zip
【发布时间】:2017-12-20 16:20:14
【问题描述】:

我需要将一组文件夹和文件压缩到名为 Resources.zip 的文件中,然后将 zip 嵌套在名为 Install.zip 的最终 zip 中。

这是我所拥有的,但我不知道为什么第一个合并没有显示在最终的 zip 中。

    var gulp = require('gulp'),
    msbuild = require('gulp-msbuild'),
    nugetRestore = require('gulp-nuget-restore'),    
    cleanCSS = require('gulp-clean-css'),
    uglify = require('gulp-uglify'),
    assemblyInfo = require('gulp-dotnet-assembly-info'),
    config = require('./package.json'),
    zip = require('gulp-zip'),
    filter = require('gulp-filter'),
    merge = require('merge2'),
    markdown = require('gulp-markdown'),
    rename = require('gulp-rename'),
    gutil = require('gulp-util'),
    path = require('path');

gulp.task('packageInstall', function() {
    var packageName = config.dnnModule.fullName + '_' + config.version;

    var jsFilter = filter(['**/js/*.js', '!**/js/*.min.js'], { restore: true });
    var cssFilter = filter(['**/*.css'], { restore: true });

    return merge(
        merge(
        gulp.src([
        config.dnnModule.pathToPublish + '/**/{*.png,*.gif,*.svn,*.jpg}',
        config.dnnModule.pathToPublish + '/**/*.cshtml',
        config.dnnModule.pathToPublish + '/**/{*.aspx,*.ascx,*.asmx}',
        config.dnnModule.pathToPublish + '/**/*.css',
        config.dnnModule.pathToPublish + '/**/{*,htm,*.html}',
        config.dnnModule.pathToPublish + '/**/*.resx',
        config.dnnModule.pathToPublish + '/**/*.js',
        config.dnnModule.pathToPublish + '/**/*.txt',
        '!' + config.dnnModule.pathToPublish + '/**/web.config',
        '!' + config.dnnModule.pathToPublish + '/**/gulpfile.js',
        '!' + config.dnnModule.pathToPublish + '/**/{bin,bin/**}',
        '!' + config.dnnModule.pathToPublish + '/**/{Providers,Providers/**}'
    ])
    .pipe(cssFilter)
    .pipe(cleanCSS())
    .pipe(cssFilter.restore)
    .pipe(jsFilter)
    .pipe(uglify().on('error', gutil.log))
    .pipe(jsFilter.restore)
    )
    .pipe(zip('Resources.zip')),

    gulp.src([
        config.dnnModule.pathToPublish + '/**/TestMvs.dll',
        config.dnnModule.pathToPublish + '/Providers/**/*.SqlDataProvider',
        config.dnnModule.pathToPublish + '/License.txt',
        config.dnnModule.pathToPublish + '/ReleaseNotes.txt'
    ]),
    gulp.src(config.dnnModule.pathToSupplementaryFiles + '/ReleaseNotes.md')
    .pipe(markdown())
    .pipe(rename('ReleaseNotes.txt'))
    )
    .pipe(zip('Install.zip'))
    .pipe(gulp.dest(config.dnnModule.packagesPath));
});

运行任务后,我得到一个 zip 文件,但它不包含来自第一个流的 resources.zip,它只包含来自第二个流的文件。我已经在它自己的任务中测试了第一个流并将文件写到磁盘上,它在那个实例中正确地生成了 zip。我就是不能让它们筑巢。

【问题讨论】:

    标签: node.js npm gulp gulp-zip


    【解决方案1】:

    我最终不得不从 merge2 包切换到 event-stream 包。在我这样做并更新我对 es.merge 的合并调用之后,一切都开始工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-08
      • 2021-04-29
      • 1970-01-01
      • 2019-03-09
      • 1970-01-01
      • 1970-01-01
      • 2020-05-03
      • 1970-01-01
      相关资源
      最近更新 更多