如何通过gulp任务获取文件大小(以字节为单位)

时间:2016-09-20 17:38:54

标签: javascript node.js gulp

我的源文件夹中有一个APK文件,我只想用gulp任务获取该文件的大小(以字节为单位),并在XML文件中更新该大小。

以下是我的gulp任务:

gulp.task('geteditmscript', function(){
    gulp.src("source/deployment.xml")
        .pipe(xeditor([
            {path: '//SCRIPT', attr: {'revision': json.version}},
            {path: '//APP', attr: {'size': gulp.src('source/*.apk').pipe(size())}}
        ]))
        .pipe(gulp.dest("source/"));
});

enter image description here

1 个答案:

答案 0 :(得分:0)

您的代码无效,因为gulp.src('source/*.apk').pipe(size())没有返回文件大小。它返回stream

虽然gulp-size允许您通过.size property访问所有文件的总大小,但只有在处理完所有文件后才能使用

这意味着您需要延迟xeditor()流,直到size()流完成为止。您可以通过将其放入on('finish', ...)处理程序来完成此操作:

gulp.task('geteditmscript', function(cb) {

  var apkSize = size();

  gulp.src('source/*.apk')
    .pipe(apkSize)
    .on('finish', function() {

      gulp.src("source/deployment.xml")
        .pipe(xeditor([
          {path: '//SCRIPT', attr: {'revision': json.version}},
          {path: '//APP', attr: {'size': apkSize.size }}
        ]))
        .pipe(gulp.dest("source/"))
        .on('end', cb);

    });
});