A token replace plugin for gulp 3
First, install gulp-token-replace
as a development dependency:
npm install --save-dev gulp-token-replace
Add it to your gulpfile.js
:
var replace = require('gulp-token-replace');
gulp.task('token-replace', function(){
var config = require('./configuration/config.json');
return gulp.src(['src/*.js', 'src/*.html'])
.pipe(replace({global:config}))
.pipe(gulp.dest('dist/'))
});
module.exports = {
"tokens":{
"RMLibs":"http://ads.pictela.com/ads/jsapi/ADTECH.js",
"size":"320x50",
"Copyrights":"Copyright 2010-2014 AOL Platforms.",
"Author":"Martin Wojtala"
},
"main":{
"name":"example",
"title":"EXAMPLE TITLE"
}
};
In a file (also works for JavaScript)
<!--{{tokens.Copyrights}}-->
<!--canvasSize:{{tokens.size}}-->
<!DOCTYPE html>
<html lang="en">
<head><title>{{main.title}}</title>
<meta http-equiv="X-UA-Compatible" content="IE=9">
<meta charset="UTF-8">
<script src="{{tokens.RMLibs}}"></script>
<script src="swipe.min.js"></script>
<link rel="stylesheet" href="{{main.name}}.css">
<script src="{{main.name}}.debug.js"></script>
</head>
<body>
<div id="content"></div>
<div id="debug"></div>
</body>
</html>
- [1.1.5] Node LTS change.
- [1.1.4] Packages audit fixes and Event-stream downgrade due to the security flag (downgraded to non-malicious version, 3.3.4 from 3.3.6).
- [1.1.3] Legacy plugin updates (Thanks coreyfarrell).
- [1.1.2] Full support for arrays (thank you for the feature request Daniel Jost & @gregmcor).
- [1.1.1] Minor documentation adjustments.
- [1.1.0] Added support for nested arrays. Tokens can now include an array which can be retrieved by specific order number (i.e. array[0]);
- [1.0.4] Dependencies bump (contribution by @coreyfarrell).
- [1.0.3] Custom token delimiter added (contribution by @ejurgelionis).
- [1.0.2] Added a object replace feature.
gulp-token-replace can be called with a config object with these attributes:
- prefix (defaults to '{{')
- suffix (defaults to '}}')
- tokens (or global) - An object containing all the tokens to be used for replacement. This object can contain sub-objects with hierarchical tokens.
- preserveUnknownTokens (defaults to false) - By default unknown tokens will be removed from the source file and replaced with an empty string. By setting the preserveUnknownTokens option to true, the source file will not be changed when an unknown token is encountered.
- delimiter (defaults to '.') - By default dot-notation is used to search for values in sub-objects. By setting
the delimiter option to any other value, tokens like
{{main.css}}
or{{styles/main.css}}
can be used.
Type: Object
configuration object.
Note: gulp-token-replace cannot perform regex replacement on streams.