Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

gulp-rename

hparra2.8mMIT2.0.0TypeScript support: definitely-typed

Rename files

gulpplugin

readme

gulp-rename

gulp-rename is a gulp plugin to rename files easily.

NPM

build status devDependency Status

Usage

gulp-rename provides simple file renaming methods.

var rename = require("gulp-rename");

// rename to a fixed value
gulp.src("./src/main/text/hello.txt")
  .pipe(rename("main/text/ciao/goodbye.md"))
  .pipe(gulp.dest("./dist")); // ./dist/main/text/ciao/goodbye.md

// rename via mutating function
gulp.src("./src/**/hello.txt")
  .pipe(rename(function (path) {
    // Updates the object in-place
    path.dirname += "/ciao";
    path.basename += "-goodbye";
    path.extname = ".md";
  }))
  .pipe(gulp.dest("./dist")); // ./dist/main/text/ciao/hello-goodbye.md

// rename via a map function
gulp.src("./src/**/hello.txt")
  .pipe(rename(function (path) {
    // Returns a completely new object, make sure you return all keys needed!
    return {
      dirname: path.dirname + "/ciao",
      basename: path.basename + "-goodbye",
      extname: ".md"
    };
  }))
  .pipe(gulp.dest("./dist")); // ./dist/main/text/ciao/hello-goodbye.md

// rename via a fixed object
gulp.src("./src/main/text/hello.txt", { base: process.cwd() })
  .pipe(rename({
    dirname: "main/text/ciao",
    basename: "aloha",
    prefix: "bonjour-",
    suffix: "-hola",
    extname: ".md"
  }))
  .pipe(gulp.dest("./dist")); // ./dist/main/text/ciao/bonjour-aloha-hola.md

See test/rename.spec.js for more examples and test/path-parsing.spec.js for hairy details.

Notes

  • dirname is the relative path from the base directory set by gulp.src to the filename.
    • gulp.src() uses glob-stream which sets the base to the parent of the first directory glob (*, **, [], or extglob). dirname is the remaining directories or ./ if none. glob-stream versions >= 3.1.0 (used by gulp >= 3.2.2) accept a base option, which can be used to explicitly set the base.
    • gulp.dest() renames the directories between process.cwd() and dirname (i.e. the base relative to CWD). Use dirname to rename the directories matched by the glob or descendents of the base of option.
  • basename is the filename without the extension like path.basename(filename, path.extname(filename)).
  • extname is the file extension including the . like path.extname(filename).
  • when using a function, a second file argument is provided with the whole context and original file value.
  • when using a function, if no Object is returned then the passed parameter object (along with any modifications) is re-used.

License

MIT License

changelog

v2.0.0

Breaking

  • Add the ability to use the function argument as an immutable map function (This may be breaking for users who were relying on the return value of the function being ignored)

Chores

  • Update deps
  • Switch from JSCS/JSHint to Prettier