@electron-internal/extract-zip

中文文档
1.0.8发布于 2026/10/29MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 2995.5万

快速,安全,本土的拉链提取为Node.js. 滴入取代取出-zi.

中文使用文档
文档目录8 节
  1. 安装
  2. 使用量
  3. 警卫
  4. 基准
  5. 分发
  6. 从源头建楼
  7. 释放
  8. 许可证

@ electron- 内部/ extract- zip

[尖叫声] 电子工程内部. 这个包是用来为Electron服务的 拥有工具。 不支持非电子包的使用: API 可能 更改以适应 Electron 的需要, 错误报告或功能请求 可在不采取行动的情况下结束外部使用案件。 需要一般用途时 提取器, 使用 extract-zip。 。 。 .

快速,安全,本土的拉链提取为Node.js. 空投替换 extract-zip。 。 。 .

  • 土著:rust core通过N-API,去压会流出事件回路.
  • 快点: ~2x在输入重档案上速度快,永不慢. 见 基准。 。 。 .
  • 保险:对Zip Slip进行硬化,并联出逃,绝对路径,NUL注入,Windows保留名和zip炸弹.
  • 零运行时间: 无 debug编号 :yauzl编号 :get-stream 在你的树上.
  • 跨平台: 为macOS,Linux(glibc/musl)和Windows(x64/arm64)预建的二进制.

安装

yarn add @electron-internal/extract-zip

使用量

仅限无害环境管理:

import extract from '@electron-internal/extract-zip';

await extract('archive.zip', { dir: '/absolute/output/path' });

dir (需要,绝对)是唯一的选择. 其它东西都是固定的: 存在的 文件是覆盖的,归档模式比特(被放大到 0o777时间是 保存后,共通链接被创建(在Windows上滑行而无共通链接权限),, 和书写平行 min(cpus, 8) 工人们。 原创的 onEntry, (中文(简体) ), defaultDirMode,以及 defaultFileMode 不支持,因为没有 消费者 electron org使用它们.

警卫

这个包是硬化的 用于提取信任的 Electron 分布档案, 执行针对 Zip Slip 、 symlink 逃生、 绝对路径、 NUL 的路径控制 注射、Windows保留名称和拉链炸弹。 它的威胁模式和完整的 封存保障清单载于 SECURITY.md。 。 。 .

提取未经信任或核实的档案已超出范围——见 SECURITY.md 详细情况.

基准

yarn bench (Apple M系列,节点24,中位数5):

企业缩放大小extract-zip (日语)这个加速
电子-v42.2.0-darwin-arm64112 甲基溴817分钟441分钟1.9x (中文(简体) )
8 x 4 MB 可压缩0.1 甲基溴24分钟3分钟9.4x (中文(简体) )
2000 个小文本文件0.4 溴化二苯乙烯372分钟199分钟1.9x (中文(简体) )
200个不可压缩文件6.2 甲基溴40分钟22分钟1.8x (中文)
node_modules2.9 甲基溴68分钟37分钟1.9x (中文(简体) )

采掘工作分阶段进行:验证路径并创建目录、增量和 与 zlib-ng 并行写入文件,然后应用同义链接和目录 元数据。 Electron number 由它唯一的182 MB 框架 二进制入门, 不能再分开了.

分发

一个包件船, 全部预建的二进制 (~ 2 MB gziped): macOS darwin-universal窗口 x64编号 :arm64,和 Linux 键 x64编号 :arm64 用于两个 glibc 和穆斯尔. binding.js 在负载时间选择正确的一个。 没有 optionalDependencies,没有邮站,没有安装网络.

从源头建楼

需要一个 Rust 工具链(和 cmake 用于zlib-ng).

yarn install
yarn build     # builds index.<your-platform>.node
yarn test

释放

释放是由 语义释放 在每次推动 main: 常规承诺消息决定版本凸起, CI 构建所有目标, 脂肪包通过信任发布到 npm 出版。 没有手动版本的凸起或标记.

许可证

麻省理工学院

版本与发布记录

@electron-internal/extract-zip 共发布 9 个版本,首次发布于 2026/06/05;过去 12 个月发布了 9 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.0.8latest2026/10/2915 天前
1.0.72026/10/2915 天前
1.0.62026/10/2222 天前
1.0.52026/07/293 个月前
1.0.42026/06/244 个月前
1.0.32026/06/125 个月前

关于 @electron-internal/extract-zip 的常见问题

@electron-internal/extract-zip 是什么?

快速,安全,本土的拉链提取为Node.js. 滴入取代取出-zi.

如何安装 @electron-internal/extract-zip?

在项目目录运行 npm install @electron-internal/extract-zip,或使用 pnpm add / yarn add / bun add。

@electron-internal/extract-zip 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@electron-internal/extract-zip 支持 ESM 还是 CommonJS?

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

@electron-internal/extract-zip 需要什么版本的 Node.js?

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

@electron-internal/extract-zip 可以商用吗?

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

@electron-internal/extract-zip 的下载量有多少?

根据 npm 官方下载统计,@electron-internal/extract-zip 在 2026/10/14 – 2026/11/12 这 30 天内被下载 29,954,670 次,日均约 998,489 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@electron-internal/extract-zip 还在维护吗?

最新版本 1.0.8 发布于 2026/10/29(15 天前);至今共发布 9 个版本,其中过去 12 个月发布了 9 个;首次发布于 2026/06/05。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。