gulp-version-tool

1.1.11 • Public • Published

gulp-version-tool NPM version Build status dependencies

Replaces strings in files by using string or regex patterns. Works with Gulp 3!

Usage

npm install gulp-version-tool --save-dev

Plays well in your gulptask file.

 
const gulp = require ("gulp");
const runSequence = require ("run-sequence"); // Run tasks sequentially
const jsEditor = require ("gulp-version-tool/src/json_edit");
const replace = require ("gulp-version-tool/src/replace");
const versionPump = require ("gulp-version-tool/src/version_pump");
gulp.task ("upversion", function () {
    let ver = require ("./package.json").version;
    //version defined in the package.json file
    console.log ("current version: ", ver);
    process.env.VERSION = versionPump (ver);
    console.log (process.env.VERSION);
});
gulp.task ("saveversion", function () {
    return gulp.src ("./package.json")
        .pipe (jsEditor (function (json) {
            json.version = process.env.VERSION;
            return json; // must return JSON object.
        }))
        .pipe (gulp.dest ("."));
 
});
gulp.task ("version_up", function () {
    gulp.src (["./example/version.ts"])
        .pipe (replace (/(\d+)\.(\d+)(?:\.(\d+))?(?:\-(\w+))?/, process.env.VERSION))
        .pipe (gulp.dest ("./example/newv"))
});
gulp.task ("autoversion", function () {
    // runSequence ("upversion", "version_up", "saveversion");
    runSequence ("upversion", "version_up", "saveversion");
});

Regex Replace

var replace = require("gulp-version-tool/src/replace");
var json_ed = require("gulp-version-tool/src/json_edit");
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"))
});
 

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.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-05-01 v1.1.7 Fully released for node 8+, version number pump tool for automatic workflow
  • 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 jjHesk. License MIT.

Package Sidebar

Install

npm i gulp-version-tool

Weekly Downloads

1

Version

1.1.11

License

MIT

Unpacked Size

13.5 kB

Total Files

14

Last publish

Collaborators

  • jrhess