grncdr / merge-stream

Merge multiple streams into one interleaved stream
MIT License
214 stars 16 forks source link

Streams order is not respected #28

Closed alexanderby closed 7 years ago

alexanderby commented 7 years ago

When I try to use merge-stream with gulp-concat, the resulting order of concatenated code blocks is different.

const gulp = require('gulp');
const merge = require('merge-stream');
const less = require('gulp-less');
const concat = require('gulp-concat');
const rename = require('gulp-rename');

gulp.task('build', () => {
    const files = ['file1', 'file2', 'file3'];
    const streams = files.map((file) => {
        return gulp.src(`./${file}.less`)
            .pipe(less());
    });
    return merge(...streams)
        .pipe(concat(`merged.css`))
        .pipe(gulp.dest('./result'));
});
stevemao commented 7 years ago

Merge multiple streams into one interleaved stream

As per description of the module.

alexanderby commented 7 years ago

Sorry, I haven't noticed that.

Could you suggest me a package that merges streams in order? I've tried several packages (merge2, ordered-merge-stream or whatever I could found on SO) but they fail with errors or silently loose some streams after some pipes.

If you don't know such a package, could you suggest how to read streams in sequence (order streams output or launch next stream when previous finishes)? I like the simplicity of merge-stream and hope it will be simple for me to tweak it.

shinnn commented 7 years ago

@alexanderby https://www.npmjs.com/package/ordered-read-streams

alexanderby commented 7 years ago

ordered-read-streams says I'm using not readable streams.

func0der commented 5 years ago

https://www.npmjs.com/package/merge2 <-- https://www.npmjs.com/package/streamqueue <-- This is mentioned in a gulp cheat sheet: https://github.com/osscafe/gulp-cheetsheet/raw/master/dist/en-js-p2.pdf