# split2 中文文档

规范地址：https://npmcn.com/package/split2/

版本：4\.2\.0
npm 元数据更新时间：2023-03-26T08:33:02.484Z
中文译文更新时间：2026-11-05T14:57:52.332Z
软件包许可：ISC

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

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

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

- 包体积（解压后）：17.4 kB，6 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>= 10\.x
- 运行依赖：0 个
- 首次发布：2014-03-12T12:17:59.330Z
- 最新版本发布：2023-03-26T08:33:02.359Z
- 近 30 天下载量：466753563（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：22（近 12 个月 0 个）

## 中文简介

将文本流拆分为行流, 使用流 3

## 安装

```sh
npm install split2
```

也可以使用：`pnpm add split2`、`yarn add split2`、`bun add split2`

## README

# Split2( matcher, 映射器, 选项)

![ci](https://github.com/mcollina/split2/workflows/ci/badge.svg)

断出一行并重新组装,使每行为一块. `split2` 灵感来自 [@ dominicarr (英语)](https://github.com/dominictarr) [`split`](https://github.com/dominictarr/split) 模块, 它完全与它兼容. 然而,它基于Node.js核心 [`Transform`](https://nodejs.org/api/stream.html#stream_new_stream_transform_options)。 。 。 .

`matcher` 可能是一个 `String`,或一个 `RegExp`。示例,读取文件中的每一行...

```js
  fs.createReadStream(file)
    .pipe(split2())
    .on('data', function (line) {
      //each chunk now is a separate line!
    })

```

`split` 使用与 `string.split` 除非它默认为"/\\r?\\n/",以及可选 `limit` 参数被忽略 . [字符串# 分割](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split)

`split` 在第三个参数上取一个可选选项对象,该参数 直接作为 [变形](https://nodejs.org/api/stream.html#stream_new_stream_transform_options) 选项.

此外 `.maxLength` 财务报告和审定财务报表 `.skipOverflow` 执行选项,对内部限制 缓冲大小和流量超过极限时的行为. 没有限制,除非 `maxLength` 已经设定。 何时 内部缓冲大小超过 `maxLength`,该流默认释放出一个错误。 您也可以设置 `skipOverflow` 改为 真以压制错误并跳过任何导致内部缓冲超过的行 `maxLength`。 。 。 .

通话 `.destroy` 会让溪流流出 `close`。用它来执行清理逻辑

```js
var splitFile = function(filename) {
  var file = fs.createReadStream(filename)

  return file
    .pipe(split2())
    .on('close', function() {
      // destroy the file stream in case the split stream was destroyed
      file.destroy()
    })
}

var stream = splitFile('my-file.txt')

stream.destroy() // will destroy the input file stream
```

# NDJ - 新线有限Json

`split2` 接受转换每行的函数.

```js
fs.createReadStream(file)
  .pipe(split2(JSON.parse))
  .on('data', function (obj) {
    //each chunk now is a js object
  })
  .on("error", function(error) {
    //handling parsing errors
  })
```

然而,在 [@ dominicarr (英语)](https://github.com/dominictarr) [`split`](https://github.com/dominictarr/split) 映射器 被包裹在试捕捉物中,而这里不是:如果你的解析逻辑可以抛出,请自己包裹. 否则,您也可以在映射器函数抛出时使用流错误处理.

# 许可证

版权 (c) 2014-2021, Matteo Collina [你好@matteocollina.com](mailto:hello@matteocollina.com)

允许为任何 特此准许收取或不收取费用的目的,但须符合下列条件: 版权通知和本许可通知印出于所有副本.

软件是提供的"AS是" 和权威 发布所有警报 关于这种软件,包括所有被渗透的 道德与鉴相. 绝对不可能 授权为 任何特别的、直接的、间接的、或因果的 使用、数据或方案的损失所产生的任何结果 产生于武装冲突的 与这种软件的使用或性能有关.

## 常见问题

### split2 是什么？

将文本流拆分为行流, 使用流 3

### 如何安装 split2？

在项目目录运行 npm install split2，或使用 pnpm add / yarn add / bun add。

### split2 支持 TypeScript 吗？

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

### split2 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### split2 需要什么版本的 Node\.js？

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

### split2 可以商用吗？

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

### split2 的下载量有多少？

根据 npm 官方下载统计，split2 在 2026/10/07 – 2026/11/05 这 30 天内被下载 466,753,563 次，日均约 15,558,452 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### split2 还在维护吗？

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

