File inject plugin for gulp.
gulp-inject-file
takes a stream of source files, and replaces inject pattern with contents of the referenced file.
Install gulp-inject
as a development dependency:
npm install --save-dev gulp-inject-file
Project structure:
└── src
└── main.xml
└── subitems
└── child.xml
The target file src/main.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<one>
<!-- inject: ./subitems/child.xml-->
</one>
The child file src/subitems/child.xml
:
<child_record></child_record>
The gulpfile.js
:
var gulp = require('gulp');
var injectfile = require("gulp-inject-file");
gulp.task('inject', function () {
return gulp.src('./src/main.xml')
.pipe(injectfile({
// can use custom regex pattern here
// <filename> token will be replaced by filename regex pattern.
// do not use capturing groups within your custom regex.
// this parameter is optional, default value: '<!--\\s*inject:<filename>-->'
pattern: '<!--\\s*inject:<filename>-->'
}));
});
src/main.xml
after running gulp inject
:
<?xml version="1.0" encoding="UTF-8"?>
<one>
<child_record></child_record>
</one>
The injected file paths are relative to each source file's cwd
.