/gulp-bundle-file

Concatenates files from .bundle

Primary LanguageJavaScriptMIT LicenseMIT

Information

Package gulp-concat
Description Concatenate files specified in .bundle file.
Node Version >= 0.10

Usage

Next code will concatenate files specified in .bundle files. Output files will have name without .bundle extension.

var bundle = require('gulp-bundle-file');

gulp.task('bundles', function() {
	return gulp.src('./bundles/*.bundle')
		.pipe(bundle.concat()) // concat files in each bundles
		.pipe(gulp.dest('./dist/'));
});

Lines inside .bundle file may contain variables like @{myVar}:

var bundle = require('gulp-bundle-file');

gulp.task('bundles', function() {
	return gulp.src('./bundles/*.bundle')
		.pipe(bundle.concat({ // here should be specified variable values
			myVar1: 'directory/subDirectory',
			myVar2: 'another-dir'
		})) // concat files in each bundles
		.pipe(gulp.dest('./dist/'));
});

You can process files specified in each .bundle with handler:

var bundle = require('gulp-bundle-file');
var less = require('gulp-less');

gulp.task('bundles', function() {
	return gulp.src('./bundles/*.bundle')
		.pipe(bundle.concat(function (bundleSrc) {
			return bundleSrc.pipe(less()); // process files with less before thay will be concated
		}))
		.pipe(gulp.dest('./dist/'));
});

Another function bundle.list() will send files from bundle into pipe:

var bundle = require('gulp-bundle-file');
var uglify = require('gulp-uglify');

gulp.task('bundles', function() {
	return gulp.src('./bundles/*.js.bundle')
		.pipe(bundle.list()) // lists files in all bundles
		.pipe(uglify()) // send all js file to uglify module
		.pipe(gulp.dest('./dist/'));
});

Bundle file example

If test.js.bundle contains text:

file1.js
some-dir/file2.js
my-dir/another-bundle.js.bundle

... and file another-bundle.js.bundle contains text:

file3.js

... then output file will have name test.js with content of file1.js + file2.js + file3.js.

Bundle file with variables:

@{myVar1}/subpath/*.js
directory/@{myVar2}/**.js