Package | gulp-concat-filenames |
---|---|
Description | Similar to concat, but creates a list of names in the output file, rather than contents being merged. |
Node Version | >= 0.10 |
var concatFilenames = require('gulp-concat-filenames');
var concatFilenamesOptions = {
};
function fileManifest(){
gulp
.src('./lib/**/*.*')
.pipe(concatFilenames('manifest.txt', concatFilenamesOptions))
.pipe(gulp.dest('./output/'));
}
gulp.task('file-manifest', fileManifest);
Gulp concat-filenames takes 2 arguments: filename
and options
This first argument is the name of the output file the list of filenames will be put into.
The second argument is optional (pun intended), and is an object with the following properties:
newline
- The character to use in place of \n
for a newline. The default value will be \n
prepend
- Some text to prepend to every entry in the list of filenamesappend
- Some text to append to every intry in the list of filenamestemplate
- a function that takes one parameter (the file name) and returns the string after some formatting. Can be used in addition to, or instead of, append
and prepend
root
- the root folder. Including this argument will return a list of relative paths instead of absolute paths.Given the file structure:
.
+-- somefile.txt
+-- lib
| +-- one.txt
| +-- two.txt
+-- gulpfile.js
var concatFilenames = require('gulp-concat-filenames');
var concatFilenamesOptions = {
root: '/lib',
prepend: '==> ',
append: ' <=='
};
function fileManifest(){
gulp
.src('./lib/**/*.*')
.pipe(concatFilenames('manifest.txt', concatFilenamesOptions))
.pipe(gulp.dest('./output/'));
}
gulp.task('file-manifest', fileManifest);
running gulp file-manifest
now produces a file called manifest.txt
with the contents
==> one.txt <==
==> two.txt <==
Or you can use the template property, to format the output as well.
function fileNameFormatter(filename) {
return 'XXX--' + filename.toUpperCase() + '--YYY';
}
var concatFilenames = require('gulp-concat-filenames');
var concatFilenamesOptions = {
root: '/lib',
template: fileNameFormatter // Pass in a function
};
function fileManifest(){
gulp
.src('./lib/**/*.*')
.pipe(concatFilenames('manifest.txt', concatFilenamesOptions))
.pipe(gulp.dest('./output/'));
}
gulp.task('file-manifest', fileManifest);
running gulp file-manifest
now produces a file called manifest.txt
with the contents
XXX--ONE.TXT--YYY
XXX--TWO.TXT--YYY
If you write tests, follow semver and have something to add, I love accepting pull requests!! Any questions? Make an issue on github! <3