gulp 如何通过管道下载和解压文件?

How to download and unzip file via pipelines in gulp?

我正在尝试使用 gulp-decompress 下载并解压 gulp 中的 zip 存档。但是得到一个错误。我的 gulp 任务如下所示:

var request = require('request');
var decompress = require('gulp-decompress');

gulp.task('unzip', function () {
   request('http://my-server-url/files/report.zip')
      .pipe(decompress())
      .pipe('./uploads')
});

执行 gulp 后出现以下错误:

node_modules\gulp-decompress\index.js:11
                if (file.isNull()) {
                         ^

TypeError: file.isNull is not a function

我用 request 试过了,得到了和你一样的错误。它可能必须先转换为可读或可写流 (fs.),然后才能继续在管道中工作,如果不花费太多时间我就无法开始工作。

所以让我推荐gulp-download,它比request简单多了。

const gulp = require('gulp');
const download = require("gulp-download");
const decompress = require('gulp-decompress');

const url = 'http://my-server-url/files/report.zip';

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

  download(url)

   .pipe(decompress())
   .pipe(gulp.dest("unzipped"));
});

这很简单。如果有必要,我相信其他人可以告诉您如何让模块 request 工作。