gulp-replace
Version:
A string replace plugin for gulp
149 lines (101 loc) • 4.11 kB
Markdown
> A string replace plugin for gulp
First, install `gulp-replace` as a development dependency:
```shell
npm install --save-dev gulp-replace
yarn add --dev gulp-replace
```
Then, add it to your `gulpfile.js`:
```javascript
const replace = require('gulp-replace');
gulp.task('templates', function(){
gulp.src(['file.txt'])
.pipe(replace('bar', 'foo'))
.pipe(gulp.dest('build/'));
});
```
```javascript
const replace = require('gulp-replace');
gulp.task('templates', function(){
gulp.src(['file.txt'])
// See https://mdn.io/string.replace#Specifying_a_string_as_a_parameter
.pipe(replace(/foo(.{3})/g, '$1foo'))
.pipe(gulp.dest('build/'));
});
```
```javascript
const replace = require('gulp-replace');
gulp.task('templates', function(){
gulp.src(['file.txt'])
.pipe(replace('foo', function(match) {
// Replaces instances of "foo" with "oof"
return match.reverse();
}))
.pipe(gulp.dest('build/'));
});
```
```javascript
const replace = require('gulp-replace');
gulp.task('templates', function(){
gulp.src(['file.txt'])
.pipe(replace(/foo(.{3})/g, function(match, p1, offset, string) {
// Replace foobaz with barbaz and log a ton of information
// See https://mdn.io/string.replace#Specifying_a_function_as_a_parameter
console.log('Found ' + match + ' with param ' + p1 + ' at ' + offset + ' inside of ' + string);
return 'bar' + p1;
}))
.pipe(gulp.dest('build/'));
});
```
```javascript
const replace = require('gulp-replace');
gulp.task('templates', function(){
gulp.src(['file.txt'])
.pipe(replace('filename', function() {
// Replaces instances of "filename" with "file.txt"
// this.file is also available for regex replace
// See https://github.com/gulpjs/vinyl#instance-properties for details on available properties
return this.file.relative;
}))
.pipe(gulp.dest('build/'));
});
```
`gulp-replace` can be called with a string or regex.
Type: `String`
The string to search for.
Type: `String` or `Function`
The replacement string or function. If `replacement` is a function, it will be called once for each match and will be passed the string that is to be replaced.
The value of `this.file` will be equal to the [vinyl instance](https://github.com/gulpjs/vinyl#instance-properties) for the file being processed.
Type: `RegExp`
The regex pattern to search for. See the [MDN documentation for RegExp] for details.
Type: `String` or `Function`
The replacement string or function. See the [MDN documentation for String.replace] for details on special replacement string patterns and arguments to the replacement function.
The value of `this.file` will be equal to the [vinyl instance](https://github.com/gulpjs/vinyl#instance-properties) for the file being processed.
An optional third argument, `options`, can be passed.
Type: `Object`
Type: `boolean`
Default: `true`
Skip binary files. This option is `true` by default. If you want to replace content in binary files, you must explicitly set it to `false`.
[]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
[]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_string_as_a_parameter
[]: https://travis-ci.org/lazd/gulp-replace
[]: https://secure.travis-ci.org/lazd/gulp-replace.svg?branch=master
[]: https://npmjs.org/package/gulp-replace
[]: https://badge.fury.io/js/gulp-replace.svg