merge2

中文文档
1.4.1发布于 2020/06/03MITCommonJS零依赖近 30 天下载 4.9亿

Merge multiple streams into one stream in sequence or parallel.

原始使用文档
文档目录12 节
  1. Install
  2. Usage
  3. API
  4. merge2()
  5. merge2(options)
  6. merge2(stream1, stream2, ..., streamN)
  7. merge2(stream1, stream2, ..., streamN, options)
  8. merge2(stream1, [stream2, stream3, ...], streamN, options)
  9. mergedStream.add(stream)
  10. mergedStream.add(stream1, [stream2, stream3, ...], ...)
  11. mergedStream.on('queueDrain', function() {})
  12. License

merge2

Merge multiple streams into one stream in sequence or parallel.

NPM version Build Status Downloads

Install

Install with npm

npm install merge2

Usage

const gulp = require('gulp')
const merge2 = require('merge2')
const concat = require('gulp-concat')
const minifyHtml = require('gulp-minify-html')
const ngtemplate = require('gulp-ngtemplate')

gulp.task('app-js', function () {
  return merge2(
      gulp.src('static/src/tpl/*.html')
        .pipe(minifyHtml({empty: true}))
        .pipe(ngtemplate({
          module: 'genTemplates',
          standalone: true
        })
      ), gulp.src([
        'static/src/js/app.js',
        'static/src/js/locale_zh-cn.js',
        'static/src/js/router.js',
        'static/src/js/tools.js',
        'static/src/js/services.js',
        'static/src/js/filters.js',
        'static/src/js/directives.js',
        'static/src/js/controllers.js'
      ])
    )
    .pipe(concat('app.js'))
    .pipe(gulp.dest('static/dist/js/'))
})
const stream = merge2([stream1, stream2], stream3, {end: false})
//...
stream.add(stream4, stream5)
//..
stream.end()
// equal to merge2([stream1, stream2], stream3)
const stream = merge2()
stream.add([stream1, stream2])
stream.add(stream3)
// merge order:
//   1. merge `stream1`;
//   2. merge `stream2` and `stream3` in parallel after `stream1` merged;
//   3. merge 'stream4' after `stream2` and `stream3` merged;
const stream = merge2(stream1, [stream2, stream3], stream4)

// merge order:
//   1. merge `stream5` and `stream6` in parallel after `stream4` merged;
//   2. merge 'stream7' after `stream5` and `stream6` merged;
stream.add([stream5, stream6], stream7)
// nest merge
// equal to merge2(stream1, stream2, stream6, stream3, [stream4, stream5]);
const streamA = merge2(stream1, stream2)
const streamB = merge2(stream3, [stream4, stream5])
const stream = merge2(streamA, streamB)
streamA.add(stream6)

API

const merge2 = require('merge2')

merge2()

merge2(options)

merge2(stream1, stream2, ..., streamN)

merge2(stream1, stream2, ..., streamN, options)

merge2(stream1, [stream2, stream3, ...], streamN, options)

return a duplex stream (mergedStream). streams in array will be merged in parallel.

mergedStream.add(stream)

mergedStream.add(stream1, [stream2, stream3, ...], ...)

return the mergedStream.

mergedStream.on('queueDrain', function() {})

It will emit 'queueDrain' when all streams merged. If you set end === false in options, this event give you a notice that should add more streams to merge or end the mergedStream.

stream

option Type: Readable or Duplex or Transform stream.

options

option Type: Object.

  • end - Boolean - if end === false then mergedStream will not be auto ended, you should end by yourself. Default: undefined

  • pipeError - Boolean - if pipeError === true then mergedStream will emit error event from source streams. Default: undefined

  • objectMode - Boolean . Default: true

objectMode and other options(highWaterMark, defaultEncoding ...) is same as Node.js Stream.

License

MIT © Teambition

版本与发布记录

merge2 共发布 23 个版本,首次发布于 2014/10/19;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.4.1latest2020/06/036 年前
1.4.02020/06/036 年前
1.3.02019/09/137 年前
1.2.42019/07/317 年前
1.2.32018/10/138 年前
1.2.22018/05/048 年前

关于 merge2 的常见问题

merge2 是什么?

Merge multiple streams into one stream in sequence or parallel.

如何安装 merge2?

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

merge2 支持 TypeScript 吗?

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

merge2 支持 ESM 还是 CommonJS?

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

merge2 需要什么版本的 Node.js?

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

merge2 可以商用吗?

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

merge2 的下载量有多少?

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

merge2 还在维护吗?

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