# gulp-replace

> A string replace plugin for gulp

Latest version **1.1.4** (published 2022-12-17) · MIT license · 0 weekly downloads

## Install

```sh
npm install gulp-replace
pnpm add gulp-replace
yarn add gulp-replace
bun add gulp-replace
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.4 |
| Published | 2022-12-17 |
| First published | 2013-12-11 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Node | >=10 |
| Dependencies | 5 |
| Unpacked size | 14.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 495 |
| Author | Larry Davis |
| Maintainers | lazd |
| Keywords | gulpplugin, replace |

## Links

- npm: https://www.npmjs.com/package/gulp-replace
- Repository: https://github.com/lazd/gulp-replace
- Homepage: https://github.com/lazd/gulp-replace#readme
- Issues: https://github.com/lazd/gulp-replace/issues
- npm.io page: https://npm.io/package/gulp-replace

## Dependencies (5)

- [@types/node](https://npm.io/package/@types/node.md) *
- [@types/vinyl](https://npm.io/package/@types/vinyl.md) ^2.0.4
- [yargs-parser](https://npm.io/package/yargs-parser.md) >=5.0.0-security.0
- [replacestream](https://npm.io/package/replacestream.md) ^4.0.3
- [istextorbinary](https://npm.io/package/istextorbinary.md) ^3.0.0

## Recent versions

- 1.1.4 (latest) — 2022-12-17
- 1.1.3 — 2021-05-06
- 1.1.2 — 2021-04-28
- 1.1.1 — 2021-04-23
- 1.1.0 — 2021-04-22
- 1.0.0 — 2018-05-16
- 0.6.1 — 2017-06-20
- 0.6.0 — 2017-06-20
- 0.5.4 — 2015-08-05
- 0.5.3 — 2015-02-18
- 0.5.2 — 2015-01-21
- 0.5.1 — 2015-01-15
- 0.5.0 — 2014-11-05
- 0.4.0 — 2014-07-07
- 0.3.0 — 2014-05-06
- … 2 more at https://npm.io/package/gulp-replace/versions

## README

# gulp-replace [![NPM version][npm-image]][npm-url] [![Build status][travis-image]][travis-url]

> A string replace plugin for gulp

[Read me for gulp 3](README-gulp3.md)

## Usage

First, install `gulp-replace` as a development dependency:

```shell
npm install --save-dev gulp-replace
# or
yarn add --dev gulp-replace
```

Then, add it to your `gulpfile.js`:

### Simple string replace

```javascript
const replace = require('gulp-replace');
const { src, dest } = require('gulp');

function replaceTemplate() {
  return src(['file.txt'])
    .pipe(replace('bar', 'foo'))
    .pipe(dest('build/'));
};

// or replace multiple strings
function replaceTemplate() {
  return src(['file.txt'])
    .pipe(replace('bar', 'foo'))
    .pipe(replace('baz', 'fuz'))
    .pipe(dest('build/'));
};

exports.replaceTemplate = replaceTemplate;
```

### Simple regex replace

```javascript
const replace = require('gulp-replace');
const { src, dest } = require('gulp');

function replaceTemplate() {
  return src(['file.txt'])
      // See https://mdn.io/string.replace#Specifying_a_string_as_a_parameter
      .pipe(replace(/foo(.{3})/g, '$1foo'))
      .pipe(dest('build/'));
};

exports.replaceTemplate = replaceTemplate;
```

### String replace with function callback

```javascript
const replace = require('gulp-replace');
const { src, dest } = require('gulp');

function replaceTemplate() {
  return src(['file.txt'])
    .pipe(replace('foo', function handleReplace(match){ return match.reverse(); })
    .pipe(dest('build/'))
};

exports.replaceTemplate = replaceTemplate;
```

### Regex replace with function callback

```javascript
const replace = require('gulp-replace');
const { src, dest } = require('gulp');

function replaceTemplate() {
  return src(['file.txt'])
    .pipe(replace(/foo(.{3})/g, function handleReplace(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(dest('build/'));
};

exports.replaceTemplate = replaceTemplate;
```

### Function callback with file object

```javascript
const replace = require('gulp-replace');
const { src, dest } = require('gulp');

function replaceTemplate() {
  return src(['file.txt'])
    .pipe(replace('filename', function handleReplace() {
         // 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(dest('build/'));
};

exports.replaceTemplate = replaceTemplate;
```

## API

`gulp-replace` can be called with a string or regex.

### replace(string, replacement[, options])

> CAUTION: `replacement` could **NOT be arrow function**, because arrow function could not bind `this`

#### string

Type: `String`

The string to search for.

#### replacement

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.

### replace(regex, replacement[, options])

#### regex

Type: `RegExp`

The regex pattern to search for. See the [MDN documentation for RegExp] for details.

#### replacement

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.

### gulp-replace options

An optional third argument, `options`, can be passed.

#### options

Type: `Object`

##### options.skipBinary

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`.

[MDN documentation for RegExp]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
[MDN documentation for String.replace]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_string_as_a_parameter

[travis-url]: https://travis-ci.org/lazd/gulp-replace
[travis-image]: https://secure.travis-ci.org/lazd/gulp-replace.svg?branch=master
[npm-url]: https://npmjs.org/package/gulp-replace
[npm-image]: https://badge.fury.io/js/gulp-replace.svg

---
_Source: https://npm.io/package/gulp-replace · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
