# @electron-internal/extract-zip 中文文档

规范地址：https://npmcn.com/package/%40electron-internal/extract-zip/

版本：1\.0\.8
npm 元数据更新时间：2026-10-29T08:23:14.905Z
中文译文更新时间：2026-11-13T11:48:25.444Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40electron-internal/extract-zip
原文对照：https://npmcn.com/package/%40electron-internal/extract-zip/?lang=original
项目主页：https://github.com/electron/extract-zip#readme
源码仓库：https://github.com/electron/extract-zip

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：7.5 MB，16 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.12\.0
- 运行依赖：0 个
- 首次发布：2026-06-04T18:57:42.366Z
- 最新版本发布：2026-10-29T08:23:14.541Z
- 近 30 天下载量：29954670（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：9（近 12 个月 9 个）

## 中文简介

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

## 安装

```sh
npm install @electron-internal/extract-zip
```

也可以使用：`pnpm add @electron-internal/extract-zip`、`yarn add @electron-internal/extract-zip`、`bun add @electron-internal/extract-zip`

## README

# @ electron- 内部/ extract- zip

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

快速,安全,本土的拉链提取为Node.js. 空投替换 [`extract-zip`](https://github.com/max-mapper/extract-zip)。 。 。 .

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

## 安装

```sh
yarn add @electron-internal/extract-zip
```

## 使用量

仅限无害环境管理:

```js
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`](https://npmcn.com/package/%40electron-internal/extract-zip/SECURITY.md)。 。 。 .

提取未经信任或核实的档案已超出范围——见 [`SECURITY.md`](https://npmcn.com/package/%40electron-internal/extract-zip/SECURITY.md) 详细情况.

## 基准

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

| 企业 | 缩放大小 | `extract-zip` (日语) | 这个 | 加速 |
| --- | --: | --: | --: | --: |
| 电子-v42.2.0-darwin-arm64 | 112 甲基溴 | 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_modules` | 2.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).

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

## 释放

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

## 许可证

麻省理工学院

## 常见问题

### @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 和提交记录判断。

