# gulp-piece

> Make pipes into one 'pipe'.

Latest version **1.1.1** (published 2015-09-09) · MIT license · 0 weekly downloads

## Install

```sh
npm install gulp-piece
pnpm add gulp-piece
yarn add gulp-piece
bun add gulp-piece
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.1 |
| Published | 2015-09-09 |
| First published | 2015-09-08 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | wuchu |
| Maintainers | wuchu |
| Keywords | gulp, gulpplugin, gulpfriendly, pipe, pipes, stream, streams, subtask, combine |

## Links

- npm: https://www.npmjs.com/package/gulp-piece
- Repository: https://github.com/wuchu/gulp-piece
- Homepage: https://github.com/wuchu/gulp-piece#readme
- Issues: https://github.com/wuchu/gulp-piece/issues
- npm.io page: https://npm.io/package/gulp-piece

## Dependencies (4)

- [through2](https://npm.io/package/through2.md) ^2.0.0
- [gulp-util](https://npm.io/package/gulp-util.md) ^3.0.6
- [event-stream](https://npm.io/package/event-stream.md) ^3.3.1
- [readable-stream](https://npm.io/package/readable-stream.md) ^2.0.2

## Alternatives

- [byte-size](https://npm.io/package/byte-size.md) — 2.1M weekly downloads
- [speed-limiter](https://npm.io/package/speed-limiter.md) — 16.0K weekly downloads
- [@powersync/node](https://npm.io/package/@powersync/node.md) — 10.9K weekly downloads
- [@ledgerhq/coin-cardano](https://npm.io/package/@ledgerhq/coin-cardano.md) — 1.0K weekly downloads
- [@jayesol/jayeson.lib.streamfinder](https://npm.io/package/@jayesol/jayeson.lib.streamfinder.md) — 1.0K weekly downloads

## Recent versions

- 1.1.1 (latest) — 2015-09-09
- 1.0.1 (1.00.1) — 2015-09-09
- 1.0.0 (1.01.0) — 2015-09-08
- 1.1.0 — 2015-09-09

## README

# Combine your gulp transform stream into a single one. [![Build Status](https://travis-ci.org/WuChu/gulp-piece.svg?branch=master)](https://travis-ci.org/WuChu/gulp-piece)

> Combine transform actions (stream), just in buffer mode.

It could let you custom 'pack' your gulp's pipe. Even your 'packed' stream could include another one.

## Install

```
$ npm install --save-dev gulp-piece
```

## Usage

### Just don't want too many pipe here.

```js

var gulp = require('gulp');
var piece = require('gulp-piece');
var uglify = require('gulp-uglify');
var rev = require('gulp-rev');

gulp.src('**/*.js')
    .pipe(piece([
        rev(),
        uglify()
    ]))
    .pipe(gulp.dest('dist/'));

// Or, it would also work well whitout the array wrap []...

gulp.src('**/*.js')
    .pipe(piece(
        uglify()
        rev()
    ))
    .pipe(gulp.dest('dist/'));

```

### Sometimes, you just want to left them in another js file, and want to invoke them in gulp code style.

task/js-process.js
```js

var piece = require('gulp-piece');
var uglify = require('gulp-uglify');
var rev = require('gulp-rev');

module.exports = function () {
    return piece(
        uglify(),
        rev()
    );
};

```

gulpfile.js
```js

var gulp = require('gulp');
var jspr = require('./task/js-process');

gulp.src('**/*.js')
    .pipe(jspr())
    .pipe(gulp.dest('dist/'));

```

### Piece in piece ?

task/js-process.js
```js

var piece = require('gulp-piece');
var uglify = require('gulp-uglify');
var filter = require('gulp-filter');

module.exports = function () {
    var jsFilter = filter('**/*.js', {restore: true});
    return piece(
        jsFilter,
        uglify(),
        jsFilter.restore
    );
};

```

task/css-process.js
```js

var piece = require('gulp-piece');
var csso = require('gulp-csso');
var filter = require('gulp-filter');

module.exports = function () {
    var cssFilter = filter('**/*.css', {restore: true});
    return piece(
        cssFilter,
        csso(),
        cssFilter.restore
    );
};

```

task/process.js
```js

var piece = require('gulp-piece');
var jspr = require('./task/js-process');
var csspr = require('./task/css-process');

module.exports = function () {
    return piece(
        jspr(),
        csspr()
    );
};

```

gulpfile.js
```js

var gulp = require('gulp');
var process = require('./task/process');

gulp.src('**/*.(js|css)')
    .pipe(process())
    .pipe(gulp.dest('dist/'));

```

## API

### piece([stream...])

Returns a [transform stream](http://nodejs.org/api/stream.html#stream_class_stream_transform).

#### pattern

Type: `array`, `stream`

Accepts a streams array or stream-arguments.

## License

MIT © Joo Wu

---
_Source: https://npm.io/package/gulp-piece · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
