首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以使用gulp创建一个压缩文件和上传而不使用临时文件?

可以使用gulp创建一个压缩文件和上传而不使用临时文件?
EN

Stack Overflow用户
提问于 2014-05-03 15:22:14
回答 1查看 2.1K关注 0票数 6

我希望创建一个zip文件并将其上传,而不将临时文件写入磁盘,如下所示:

代码语言:javascript
复制
gulp.task( 'zip-upload', function() {
  return gulp.src( '**/*', { cwd: 'out/', cwdbase: true } )
    .pipe( zip( 'file.zip' ) )
    .pipe( request.put( 'https://myurl.com' ) );
});

但它会抛出一个错误:

代码语言:javascript
复制
http.js:853
    throw new TypeError('first argument must be a string or Buffer');

TypeError: first argument must be a string or Buffer
    at ClientRequest.OutgoingMessage.write (http.js:853:11)
    at Request.write (.../node_modules/request/request.js:1315:25)

最后,我使用了两个任务来解决这个问题,但这并不理想:

代码语言:javascript
复制
gulp.task( 'zip', function() {
  return gulp.src( '**/*', { cwd: 'out/', cwdbase: true } )
    .pipe( zip( 'file.zip' ) )
    .pipe( gulp.dest( './' ) );
});

gulp.task( 'upload', [ 'zip' ], function() {
  fs.createReadStream('file.zip').pipe( request.put( 'https://myurl.com' ) );
});

是否有可能使用类似于第一次吞咽的方法?

依赖关系:

代码语言:javascript
复制
npm install gulp-zip request

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-08 12:46:41

看起来吞咽缓冲器应该能够解决您的问题:

安装gulp缓冲区并将其添加到您的gulp文件中,然后在zip调用和请求之间插入缓冲区。

代码语言:javascript
复制
gulp.task( 'zip-upload', function() {
  return gulp.src( '**/*', { cwd: 'out/', cwdbase: true } )
    .pipe( zip( 'file.zip' ) )
    .pipe( buffer() )
    .pipe( request.put( 'https://myurl.com' ) );
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23446290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档