🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more

gulp-replace-task

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gulp-replace-task

Replace text patterns with applause.

2.0.1
latest
Version published
Weekly downloads
8.7K
-9.86%
Maintainers
1
Weekly downloads
 
Created

gulp-replace-task

Build Status Version Prerequisite License: MIT Twitter: outa7iME

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' // Replaces "John Smith" with "Smith, John"
          }
        ]
      })
    )
    .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, // Explicitly using a regexp
            replacement: 'bar'
          }
        ]
      })
    )
    .pipe(
      replace({
        patterns: [
          {
            match: 'foo',
            replacement: 'bar'
          }
        ],
        usePrefix: false // Using the option provided
      })
    )
    .pipe(
      replace({
        patterns: [
          {
            match: 'foo',
            replacement: 'bar'
          }
        ],
        prefix: '' // Removing the prefix manually
      })
    )
    .pipe(gulp.dest('build'));
});
  • applause - Human-friendly replacements

License

MIT © outaTiME

FAQs

Package last updated on 28 Feb 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts