@alienkarma/archiver

中文文档
7.0.1-fork.6发布于 2026/07/28MITES Module近 30 天下载 2349

用于生成归档的流媒体界面

中文使用文档
文档目录3 节
  1. 安装
  2. 快速启动
  3. 格式

存档器

用于生成归档的流媒体界面

访问 API 文档 用于列出所有可用的方法.

安装

npm install archiver --save

快速启动

import fs from "fs";
import { ZipArchive } from "archiver";

// create a file to stream archive data to.
const output = fs.createWriteStream(__dirname + "/example.zip");
const archive = new ZipArchive({
  zlib: { level: 9 }, // Sets the compression level.
});

// listen for all archive data to be written
// 'close' event is fired only when a file descriptor is involved
output.on("close", function () {
  console.log(archive.pointer() + " total bytes");
  console.log(
    "archiver has been finalized and the output file descriptor has closed.",
  );
});

// This event is fired when the data source is drained no matter what was the data source.
// It is not part of this library but rather from the NodeJS Stream API.
// @see: https://nodejs.org/api/stream.html#stream_event_end
output.on("end", function () {
  console.log("Data has been drained");
});

// good practice to catch warnings (ie stat failures and other non-blocking errors)
archive.on("warning", function (err) {
  if (err.code === "ENOENT") {
    // log warning
  } else {
    // throw error
    throw err;
  }
});

// good practice to catch this error explicitly
archive.on("error", function (err) {
  throw err;
});

// pipe archive data to the file
archive.pipe(output);

// append a file from stream
const file1 = __dirname + "/file1.txt";
archive.append(fs.createReadStream(file1), { name: "file1.txt" });

// append a file from string
archive.append("string cheese!", { name: "file2.txt" });

// append a file from buffer
const buffer3 = Buffer.from("buff it!");
archive.append(buffer3, { name: "file3.txt" });

// append a file
archive.file("file1.txt", { name: "file4.txt" });

// append files from a sub-directory and naming it `new-subdir` within the archive
archive.directory("subdir/", "new-subdir");

// append files from a sub-directory, putting its contents at the root of archive
archive.directory("subdir/", false);

// append files from a glob pattern
archive.glob("file*.txt", { cwd: __dirname });

// finalize the archive (ie we are done appending files but streams have to finish yet)
// 'close', 'end' or 'finish' may be fired right after calling this method so register to them beforehand
archive.finalize();

格式

装有外箱支持的档案船 TAR和ZIP档案.

版本与发布记录

@alienkarma/archiver 共发布 6 个版本,首次发布于 2026/02/20;过去 12 个月发布了 6 个版本。

版本发布日期距今
7.0.1-fork.6latest2026/07/283 个月前
7.0.1-fork.52026/04/276 个月前
7.0.1-fork.42026/02/268 个月前
7.0.1-fork.32026/02/208 个月前
7.0.1-fork.22026/02/208 个月前
7.0.1-fork.12026/02/208 个月前

关于 @alienkarma/archiver 的常见问题

@alienkarma/archiver 是什么?

用于生成归档的流媒体界面

如何安装 @alienkarma/archiver?

在项目目录运行 npm install @alienkarma/archiver,或使用 pnpm add / yarn add / bun add。

@alienkarma/archiver 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/alienkarma__archiver 是否存在。

@alienkarma/archiver 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@alienkarma/archiver 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@alienkarma/archiver 可以商用吗?

@alienkarma/archiver 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@alienkarma/archiver 的下载量有多少?

根据 npm 官方下载统计,@alienkarma/archiver 在 2026/10/06 – 2026/11/04 这 30 天内被下载 2,349 次,日均约 78 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@alienkarma/archiver 还在维护吗?

最新版本 7.0.1-fork.6 发布于 2026/07/28(3 个月前);至今共发布 6 个版本,其中过去 12 个月发布了 6 个;首次发布于 2026/02/20。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。