Gulp plugin that concatenates files with sourcemap support and configurable separators
npx @tessl/cli install tessl/npm-gulp-concat@2.6.0Gulp Concat is a Gulp plugin that concatenates files with source map support and configurable separators. It processes vinyl file objects through a streaming interface, combining multiple files into a single output file while preserving metadata and source maps.
npm install --save-dev gulp-concatconst concat = require('gulp-concat');const gulp = require('gulp');
const concat = require('gulp-concat');
gulp.task('scripts', function() {
return gulp.src('./lib/*.js')
.pipe(concat('all.js'))
.pipe(gulp.dest('./dist/'));
});Concatenates files using a streaming interface with configurable separators and source map support.
/**
* Creates a transform stream that concatenates files
* @param {string|Object} file - Output filename or file options object
* @param {Object} [options] - Configuration options
* @param {string} [options.newLine='\n'] - Separator between concatenated files
* @returns {Transform} Transform stream for file concatenation
*/
function concat(file, options)Transform stream (through2.obj) that processes vinyl files and emits a single concatenated file.
Basic concatenation:
gulp.src(['lib/file1.js', 'lib/file2.js', 'lib/file3.js'])
.pipe(concat('combined.js'))
.pipe(gulp.dest('dist/'));Custom separator:
gulp.src('src/*.js')
.pipe(concat('main.js', {newLine: ';'}))
.pipe(gulp.dest('build/'));File object with properties:
gulp.src('src/*.js')
.pipe(concat({
path: 'new.js',
stat: { mode: 0666 }
}))
.pipe(gulp.dest('dist/'));With source maps:
const sourcemaps = require('gulp-sourcemaps');
gulp.src('src/**/*.js')
.pipe(sourcemaps.init())
.pipe(concat('all.js'))
.pipe(sourcemaps.write())
.pipe(gulp.dest('dist/'));The function throws or emits errors in these cases:
// Thrown synchronously when file parameter is missing
throw new Error('gulp-concat: Missing file option');
// Thrown when file object lacks path property
throw new Error('gulp-concat: Missing path in file options');
// Emitted when encountering streaming files
emit('error', new Error('gulp-concat: Streaming not supported'));// File parameter can be a string or vinyl file object
type FileParam = string | {
path: string;
cwd?: string;
base?: string;
stat?: fs.Stats;
[key: string]: any;
};
// Options object for configuration
interface ConcatOptions {
newLine?: string; // Default: '\n'
}
// Return type is a Transform stream
interface ConcatStream extends Transform {
// Inherits all Transform stream methods
}This package depends on:
through2: ^2.0.0 - Streaming interfacevinyl: ^2.0.0 - File object handlingconcat-with-sourcemaps: ^1.0.0 - Source map aware concatenation