Replaces strings in files by using string or regex patterns. Works with Gulp 3!
Usage
npm install gulp-string-replace --save-dev
Regex Replace
var replace = require('gulp-string-replace'); gulp.task('replace_1', function() { gulp.src(["./config.js"]) // Any file globs are supported .pipe(replace(new RegExp('@env@', 'g'), 'production')) .pipe(gulp.dest('./build/config.js')) }); gulp.task('replace_2', function() { gulp.src(["./index.html"]) .pipe(replace(/version(={1})/g, '$1v0.2.2')) .pipe(gulp.dest('./build/index.html')) }); gulp.task('replace_3', function() { gulp.src(["./config.js"]) .pipe(replace(/foo/g, function () { return 'bar'; })) .pipe(gulp.dest('./build/config.js')) });
String Replace
gulp.task('replace_1', function() { gulp.src(["./config.js"]) .pipe(replace('environment', 'production')) .pipe(gulp.dest('./build/config.js')) });
Function Replace
gulp.task('replace_1', function() { gulp.src(["./config.js"]) .pipe(replace('environment', function () { return 'production'; })) .pipe(gulp.dest('./build/config.js')) }); gulp.task('replace_2', function() { gulp.src(["./config.js"]) .pipe(replace('environment', function (replacement) { return replacement + '_mocked'; })) .pipe(gulp.dest('./build/config.js')) });
Exampe with options object
var options = { logs: { enabled: false } }; gulp.task('replace_1', function() { gulp.src(["./config.js"]) .pipe(replace('environment', 'dev', options) .pipe(gulp.dest('./build/config.js')) });
var options = { searchValue: 'string' }; gulp.task('replace_1', function() { gulp.src(["./config.js"]) .pipe(replace('(some value here /* ignore by sth */)(', 'dev', options) .pipe(gulp.dest('./build/config.js')) });
API
replace(pattern, replacement, options)
pattern
Type: String or RegExp
The string to search for.
replacement
Type: String or Function
The replacement string or function. Called once for each match. Function has access to regex outcome (all arguments are passed).
options
Type: Object
options.searchValue
Type: string, Default: regex, Options: regex or string
Description: Used to determine if search value is regex or string.
options.logs.enabled
Type: Boolean, Default: true
Displaying logs.
options.logs.notReplaced
Type: Boolean, Default: false
Displaying "not replaced" logs.
More details here: MDN documentation for RegExp and MDN documentation for String.replace.
Release History
- 2018-10-12 v1.1.2 Fixed issue wrong stream parameters.
- 2018-07-13 v1.1.1 Moved gulp into devDependencies.
- 2018-05-24 v1.1.0 Added support for node 8+ by replacing buffer with buffer.from. Added searchValue option. Updated dependencies.
- 2017-12-31 v1.0.0 Removed a gulp-util, clean up and released v1.0.0
- 2017-11-19 v0.4.0 Passed entire regex outcome to replace function.
- 2017-01-04 v0.3.1 Improved documentation. Removed duplicated comments & Fixed typo.
- 2016-11-30 v0.3.0 Default value for "notReplaced" set to "false".
- 2016-09-24 v0.2.0 Added options object.
- 2016-09-09 v0.1.1 Reorganization of files along with minor cosmetic changes.
- 2016-03-09 v0.1.0 Initial version of plugin.
Task submitted by Tomasz Czechowski. License MIT.