# 7zip-min 中文文档

规范地址：https://npmcn.com/package/7zip-min/

版本：3\.0\.1
npm 元数据更新时间：2026-03-01T20:35:25.650Z
中文译文更新时间：2026-11-05T17:45:47.631Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：36.6 kB，7 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2018-09-27T13:11:24.684Z
- 最新版本发布：2026-03-01T20:35:25.538Z
- 近 30 天下载量：146567（2026-10-04 至 2026-11-02，npm 官方下载统计）
- 已发布版本数：24（近 12 个月 2 个）

## 中文简介

独立的跨平台拉链/ 有7za的unzip

## 安装

```sh
npm install 7zip-min
```

也可以使用：`pnpm add 7zip-min`、`yarn add 7zip-min`、`bun add 7zip-min`

## README

# 7zip-min (英语)

[![npm version](https://img.shields.io/npm/v/7zip-min.svg)](https://www.npmjs.com/package/7zip-min) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)

最小跨平台包/外包装(和任何命令) **7-齐普** 为了Node.js.  
这不需要 **7zip** 将安装在您的系统中. 此软件包包含一个独立的 **7号线** 版本 **7-齐普** (使用来自 [7zip-bin (英语)](https://github.com/develar/7zip-bin) 软件包).

## 特征

-   包括预编取自 [7zip-bin (英语)](https://github.com/develar/7zip-bin)
-   在 Windows、 macOS 和 Linux 上工作
-   电动软件
-   包含全部类型脚本类型定义
-   支持承诺和召回
-   支持节点.js v10+

## 快速启动

```bash
npm install 7zip-min
```

```javascript
import _7z from '7zip-min';

// Create an archive
await _7z.pack('myFolder', 'archive.7z');

// Extract an archive
await _7z.unpack('archive.7z', 'outputFolder');

// List archive contents
const files = await _7z.list('archive.7z');
console.log(files);
```

> 💡 **提示 :** 您也可以提取特定文件 [`unpackSome()`](https://npmcn.com/package/7zip-min/#readme-unpacksomepathtoarch-filestounpack-destpath-callback) 或运行自定义 7z 命令 [`cmd()`](https://npmcn.com/package/7zip-min/#readme-cmdparamsarr-callback)见 [API 方法](https://npmcn.com/package/7zip-min/#readme-api-methods) 详细情况.

## 目录

-   [支持的归档格式](https://npmcn.com/package/7zip-min/#readme-supported-archive-formats)
-   [支持的平台](https://npmcn.com/package/7zip-min/#readme-supported-platforms)
-   [导入](https://npmcn.com/package/7zip-min/#readme-import)
-   [API 方法](https://npmcn.com/package/7zip-min/#readme-api-methods)
-   [配置](https://npmcn.com/package/7zip-min/#readme-configuration)
-   [实例](https://npmcn.com/package/7zip-min/#readme-examples)
-   [电用](https://npmcn.com/package/7zip-min/#readme-electron-usage)
-   [处理错误](https://npmcn.com/package/7zip-min/#readme-error-handling)

## 支持的归档格式

根据 [7-Zip 文档](https://web.mit.edu/outland/arch/i386_rhel4/build/p7zip-current/DOCS/MANUAL/),7za支持:

**7兹** • 妇女 **兹玛** • 妇女 **出租车** • 妇女 **拉链** • 妇女 **齐普** • 妇女 **bzip2 键** • 妇女 **页:1** • 妇女 **沥青**

## 支持的平台

| 平台 | 建筑 |
| --- | --- |
| **窗口** | x86, x64 (英语) |
| **马科斯** | 苹果硅(arm64),英特尔(x64) |
| **链接** | 臂,臂64,ia32,x64 |

**节点.js**: v10 及以上  
**电子**: 支持(见 [电用](https://npmcn.com/package/7zip-min/#readme-electron-usage) (见下文)

更多平台详情,请参见 [7zip-bin (英语)](https://github.com/develar/7zip-bin) 仓库.

## 导入

```javascript
// ES6 Module syntax
import _7z from '7zip-min';

// Named imports also supported
import { unpack, pack, list, cmd, config, getConfig } from '7zip-min';

// or use CommonJS syntax, if you prefer
const _7z = require('7zip-min');
```

## API 方法

所有方法返回 a `Promise` 并支持标准Node.js召回作为最后一个参数. "承诺"解决了7z命令的标准输出(stdout)(但 `list()` 返回一系列对象.

### `pack(pathToSrc, pathToArch, [callback])`

从文件或目录创建归档.

**参数:**

-   `pathToSrc` (字符串):要压缩的文件或目录路径
-   `pathToArch` (字符串):要创建的归档路径
-   `callback` (功能,可选):节点回调功能

**回返情况:** 承诺 < string > - stdout of 7z 命令

```javascript
await _7z.pack('path/to/dir', 'archive.7z');
await _7z.pack('path/to/file.txt', 'backup.zip');
```

### `unpack(pathToArch, [destPath], [callback])`

提取归档到目的目录 .

**参数:**

-   `pathToArch` (字符串):归档文件的路径
-   `destPath` (弦,可选): 提取文件的地方( 默认为当前目录)
-   `callback` (功能,可选):节点回调功能

**回返情况:** 承诺 < string > - stdout of 7z 命令

```javascript
// Unpack to specific directory
await _7z.unpack('archive.7z', 'output/folder');

// Unpack to current directory
await _7z.unpack('archive.zip');
```

### `unpackSome(pathToArch, filesToUnpack, [destPath], [callback])`

从归档中提取特定文件或目录.

**参数:**

-   `pathToArch` (字符串):归档文件的路径
-   `filesToUnpack` (弦 \[ \] : 用于提取的文件/目录名称或图案组
-   `destPath` (弦,可选): 提取文件的地方( 默认为当前目录)
-   `callback` (功能,可选):节点回调功能

**回返情况:** 承诺 < string > - stdout of 7z 命令

```javascript
// Extract specific files to a directory
await _7z.unpackSome('archive.7z', ['file1.txt', 'dir1'], 'output');

// Extract with pattern to current directory
await _7z.unpackSome('archive.7z', ['*.txt']);
```

### `list(pathToArch, [callback])`

列出一个归档的内容 .

**参数:**

-   `pathToArch` (字符串):归档文件的路径
-   `callback` (功能,可选):节点回调功能

**回返情况:** 承诺 < 列表项目\[ \] > -- -- 归档中的项目阵列

每个 `ListItem` 对象具有以下属性:

-   `name` (字符串): **\[保证\]** 文件/目录路径( 始终存在)
-   `size` (弦,可选): 未压缩大小
-   `compressed` (弦,可选): 压缩大小
-   `date` (弦,可选): 修改日期
-   `time` (弦,可选): 修改时间
-   `attr` (弦,可选): 文件属性
-   `crc` (字符串,可选):CRC校验和
-   `method` (弦,可选): 压缩方法
-   `encrypted` (弦,可选): 加密状态

> **说明:** 只有 `name` 保证财产的存在。 其他属性取决于归档格式和7z输出.

```javascript
const items = await _7z.list('archive.7z');
items.forEach(item => {
  console.log(`${item.name}${item.size ? ` - ${item.size} bytes` : ''}`);
});
```

### `cmd(paramsArr, [callback])`

使用自定义参数运行任意 7z 命令 。 这是一个低等方法,可以让你完全控制7z并返回原始命令输出.

**参数:**

-   `paramsArr` (弦 \[ \] : 7z 命令行参数阵列
-   `callback` (功能,可选):节点回调功能

**回返情况:** 承诺 < string > - stdout of 7z 命令( raw 输出可以解析或处理)

```javascript
// Custom compression with ultra settings
const output = await _7z.cmd(['a', '-mx=9', 'ultra.7z', 'folder']);
console.log(output); // Raw 7z output

// Test archive integrity and get detailed report
const testResult = await _7z.cmd(['t', 'archive.7z']);
if (testResult.includes('Everything is Ok')) {
  console.log('Archive is valid');
}

// Extract with password
await _7z.cmd(['x', 'protected.7z', '-pMyPassword', '-ooutput']);
```

## 配置

### `getConfig()`

返回当前配置设置.

**回返情况:** 配置对象为:

-   `binaryPath` (字符串): 7za 二进制的当前路径

```javascript
const config = _7z.getConfig();
console.log(`Using 7za binary at: ${config.binaryPath}`);
```

### `config(settings)`

更新配置设置 .

**参数:**

-   `settings` (对象):配置对象
    -   `binaryPath` (字符串,可选):自定义路径为 7za 二进制

```javascript
// Use a custom 7za binary
_7z.config({
  binaryPath: '/custom/path/to/7za'
});
```

### 自定义二进制路径

有时您可能想要使用自定义路径去取取 7za 二进制 。 常用案例包括:

-   **电子软件**: 当与自定义位置捆绑时
-   **自定义构建**: 使用7za的特定版本
-   **非标准设施**: 当 7za 安装在自定义位置时

使用 `getConfig()` 财务报告和审定财务报表 `config()` 用于获取或设置二进制路径。 详情见 [106号](https://github.com/onikienko/7zip-min/pull/106)。 。 。 .

## 实例

### 处理输出

从 7z 命令中抓取标准输出用于记录或分析 :

```javascript
const stdout = await _7z.pack('myFolder', 'archive.7z'); 
console.log(stdout); // Prints 7z command output
```

### 替代语法

所有方法都与标准的Node.js调用兼容并 `.then()` 链条 :

**回调样式 :**

```javascript
_7z.unpack('archive.7z', 'output', (err, output) => {
  if (err) return console.error(err);
  console.log('Unpacked!', output);
});
```

**承诺样式 :**

```javascript
_7z.list('archive.7z')
  .then(list => console.log(list))
  .catch(err => console.error(err));
```

## 电用

这个包裹与Electron合作. 软件包在 Electron app 内部运行时自动检测,并调整二进制路径 `app.asar` 改为 `app.asar.unpacked`。 。 。 .

使用时 `electron-builder`,您需要确保 7za 二进制从 .asar 档案中解开 [`asarUnpack`](https://www.electron.build/configuration#asarunpack) 选项 :

```json
{
  "build": {
    "asarUnpack": [
      "node_modules/7zip-bin/**/*"
    ]
  }
}
```

也可以设置自定义二进制路径, 如果您喜欢用不同方式捆绑二进制:

```javascript
_7z.config({
  binaryPath: '/custom/path/to/7za'
});
```

## 处理错误

当操作失败时,所有方法都会抛出出错误(或传出错误回调). 错误对象是一个扩展对象 `Error` 与 额外属性 :

-   `message`: 错误消息
-   `stderr`: 7z的标准出错输出
-   `stdout`: 7z的标准输出(如果有的话)
-   `code`: 从 7z 进程退出代码

```javascript
try {
  await _7z.unpack('nonexistent.7z');
} catch (err) {
  console.error('Error message:', err.message);
  console.log('Exit code', err.code);
  console.error('Standard error:', err.stderr);
  console.error('Standard output:', err.stdout);
}
```

## 另见

-   [7zip-bin (英语)](https://github.com/develar/7zip-bin) - 预编7za二进制
-   [7-齐普](https://www.7-zip.org/) - 7-Zip官方网站
-   [命令行版本用户指南](https://web.mit.edu/outland/arch/i386_rhel4/build/p7zip-current/DOCS/MANUAL/) - 7z命令行文件

## 常见问题

### 7zip-min 是什么？

独立的跨平台拉链/ 有7za的unzip

### 如何安装 7zip-min？

在项目目录运行 npm install 7zip-min，或使用 pnpm add / yarn add / bun add。

### 7zip-min 支持 TypeScript 吗？

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

### 7zip-min 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### 7zip-min 可以商用吗？

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

### 7zip-min 的下载量有多少？

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

### 7zip-min 还在维护吗？

最新版本 3\.0\.1 发布于 2026/03/02（8 个月前）；至今共发布 24 个版本，其中过去 12 个月发布了 2 个；首次发布于 2018/09/27。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

