+-
node archiver压缩文件获取进度条 该怎么算呢

export const zipFilePromise = (sourcePath: string, outputPath: string, zipDirname: string) => {
return new Promise((resolve, reject) => {

try {
  let output = fs.createWriteStream(outputPath);

  let archive = archiver("zip", { zlib: { level: 9 } });

  output.on("close", function () {
    console.log(archive.pointer() + " total bytes");
    resolve(true);
  });

  output.on("end", function () {
    console.warn("Data has been drained");
  });

  output.on("drain", function (e) {
    //缓存区充满并被写入完成,处于清空状态时触发
    console.warn("zipping drained");
  });

  output.on("error", function (e) {
    console.warn("Data has been error");
    reject(e);
  });

  output.on("finish", function () {
    console.warn("Data has been finished");
  });

  output.on("pipe", function () {
    console.warn("Data has been piped");
  });

  output.on("unpipe", function () {
    console.warn("Data has been unpipe");
  });

  archive.on("warning", function (err) {
    if (err.code === "ENOENT") {
      reject("ENOENT");
    } else {
      reject(err);
    }
  });

  archive.on("error", function (err) {
    reject(err);
  });

  archive.pipe(output);

  archive.on("progress", function (res) {
    console.log(res)
  });


  archive.directory(sourcePath, zipDirname);

  archive.finalize();
} catch (err) {
  console.log(err);
  reject(err);
}

});
};

archive.on("progress", function (res) {

    console.log(res)
  });
  res 打印的是
  1.  {entries: {…}, fs: {…}}
entries: {total: 43, processed: 43} fs: {totalBytes: 162325234, processedBytes: 162325234}
image.png

进度完成都一样,该怎么算呢