gulp-replace-task
Replace text patterns with applause.
Install
From NPM:
npm install gulp-replace-task --save-dev
Usage
Assuming installation via NPM, you can use gulp-replace-task
in your gulpfile like this:
var gulp = require('gulp');
var replace = require('gulp-replace-task');
gulp.task('default', function () {
gulp
.src('src/index.html')
.pipe(
replace({
patterns: [
{
match: 'foo',
replacement: 'bar'
}
]
})
)
.pipe(gulp.dest('build'));
});
Options
Supports all the applause options.
Examples
Basic
File src/manifest.appcache
:
CACHE MANIFEST
# @@timestamp
CACHE:
favicon.ico
index.html
NETWORK:
*
Gulpfile:
var gulp = require('gulp');
var replace = require('gulp-replace-task');
gulp.task('default', function () {
gulp
.src('src/manifest.appcache')
.pipe(
replace({
patterns: [
{
match: 'timestamp',
replacement: Date.now()
}
]
})
)
.pipe(gulp.dest('build'));
});
Multiple matching
File src/manifest.appcache
:
CACHE MANIFEST
# @@timestamp
CACHE:
favicon.ico
index.html
NETWORK:
*
File src/humans.txt
:
__ _
_ _/__ /./|,//_`
/_//_// /_|/// //_, outaTiME v.@@version
/* TEAM */
Web Developer / Graphic Designer: Ariel Oscar Falduto
Site: https://www.outa.im
Twitter: @outa7iME
Contact: afalduto at gmail dot com
From: Buenos Aires, Argentina
/* SITE */
Last update: @@timestamp
Standards: HTML5, CSS3, robotstxt.org, humanstxt.org
Components: H5BP, Modernizr, jQuery, Bootstrap, LESS, Jade, Grunt
Software: Sublime Text, Photoshop, LiveReload
Gulpfile:
var gulp = require('gulp');
var replace = require('gulp-replace-task');
var pkg = require('./package.json');
gulp.task('default', function () {
gulp
.src(['src/manifest.appcache', 'src/humans.txt'])
.pipe(
replace({
patterns: [
{
match: 'version',
replacement: pkg.version
},
{
match: 'timestamp',
replacement: Date.now()
}
]
})
)
.pipe(gulp.dest('build'));
});
Cache busting
File src/index.html
:
<head>
<link rel="stylesheet" href="/css/style.css?rel=@@timestamp">
<script src="/js/app.js?rel=@@timestamp"></script>
</head>
Gulpfile:
var gulp = require('gulp');
var replace = require('gulp-replace-task');
gulp.task('default', function () {
gulp
.src('src/index.html')
.pipe(
replace({
patterns: [
{
match: 'timestamp',
replacement: Date.now()
}
]
})
)
.pipe(gulp.dest('build'));
});
Include file
File src/index.html
:
<body>
@@include
</body>
Gulpfile:
var gulp = require('gulp');
var replace = require('gulp-replace-task');
var fs = require('fs');
gulp.task('default', function () {
gulp
.src('src/index.html')
.pipe(
replace({
patterns: [
{
match: 'include',
replacement: fs.readFileSync('./includes/content.html', 'utf8')
}
]
})
)
.pipe(gulp.dest('build'));
});
Regular expression
File src/username.txt
:
John Smith
Gulpfile:
var gulp = require('gulp');
var replace = require('gulp-replace-task');
gulp.task('default', function () {
gulp
.src('src/username.txt')
.pipe(
replace({
patterns: [
{
match: /(\w+)\s(\w+)/,
replacement: '$2, $1'
}
]
})
)
.pipe(gulp.dest('build'));
});
Lookup for foo
instead of @@foo
Gulpfile:
var gulp = require('gulp');
var replace = require('gulp-replace-task');
gulp.task('default', function () {
gulp
.src('src/foo.txt')
.pipe(
replace({
patterns: [
{
match: /foo/g,
replacement: 'bar'
}
]
})
)
.pipe(
replace({
patterns: [
{
match: 'foo',
replacement: 'bar'
}
],
usePrefix: false
})
)
.pipe(
replace({
patterns: [
{
match: 'foo',
replacement: 'bar'
}
],
prefix: ''
})
)
.pipe(gulp.dest('build'));
});
Related
License
MIT © outaTiME