首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取through2流的JSON/字符串吗?

获取through2流的JSON/字符串吗?
EN

Stack Overflow用户
提问于 2015-11-30 07:56:27
回答 1查看 1.1K关注 0票数 3

我有一堆压缩文件,每个文件都包含一个.config文件。

我想迭代每个zip,解压缩它,读取配置文件,并使用这个配置文件上传某个地方的zip文件。

代码语言:javascript
复制
gulp.task('deploy-zips', function () {
  const filter = config()[target].filter;

  return gulp.src([destination + '/' + filter])
    .pipe(deployZips());
});

这是任务入口点。

代码语言:javascript
复制
function deployZips() {
  return through({ objectMode: true }, function (zipFile, zipEncoding, zipCallback) {
    gutil.log(zipFile.path.split('\\').reverse()[0]);

    gulp.src(zipFile.path)
      .pipe(unzip({
        filter : function(entry){

          if (entry.type !== 'File') {
            return false;
          }

          return entry.path.indexOf('deploy-config.json') > -1;
        }
      }))
      .pipe(through({ objectMode: true }, function(configFile, configEncoding, uploadCallback){
          gutil.log(configFile.path); // Outputs the file name as deploy-config.json

          //????
          var config = JSON.parse(configFile);

          uploadCallback(null, configFile);
      }))
      .on('end', function() {
          zipCallback(null, zipCallback);
      })
      ;
  });

}

这似乎显示了我所追求的所有zip文件,然后它输出了我想要查看的配置文件。然而,在这一点上,我对如何解析配置文件以获得配置感到困惑。

我试着解析configFile,使用fs.readFileSync(...)读取文件

但似乎什么都起不到作用。配置包含要上传到的凭据,因此我需要读取它,然后使用它将其发送到S3或其配置的任何位置。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-30 08:45:49

configFile更改为configFile.contents

var config = JSON.parse(configFile.contents);

请参阅https://github.com/gulpjs/vinyl#file

代码语言:javascript
复制
function deployZips() {
  return through({ objectMode: true }, function (zipFile, zipEncoding, zipCallback) {
    gutil.log(zipFile.path.split('\\').reverse()[0]);

    gulp.src(zipFile.path)
      .pipe(unzip({
        filter : function(entry){

          if (entry.type !== 'File') {
            return false;
          }

          return entry.path.indexOf('deploy-config.json') > -1;
        }
      }))
      .pipe(through({ objectMode: true }, function(configFile, configEncoding, uploadCallback){
          gutil.log(configFile.path); // Outputs the file name as deploy-config.json

          var config = JSON.parse(configFile.contents);

          uploadCallback(null, configFile);
      }))
      .on('end', function() {
          zipCallback(null, zipCallback);
      })
      ;
  });

}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33993834

复制
相关文章

相似问题

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