Rename files easily
Switch branches/tags
Nothing to show
Clone or download
Latest commit c9c2ba2 Jul 23, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
test Add unit tests Jul 23, 2018
.editorconfig chore(global): use two-space indenting and single quotes (closes #45) Mar 31, 2015
.gitattributes Initial commit. Added renaming by string. Dec 4, 2013
.gitignore exclude package-lock May 15, 2018
.jscsrc Add JSCS Apr 5, 2015
.jshintrc Add JSCS Apr 5, 2015
.travis.yml update Jul 23, 2018
LICENSE Initial commit. Added renaming by string. Dec 4, 2013 update Jul 23, 2018
index.js Pass the original file to the rename plugin Jul 19, 2018
package.json update Jul 23, 2018


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


build status devDependency Status


gulp-rename provides simple file renaming methods.

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

// rename via string
  .pipe(gulp.dest("./dist")); // ./dist/main/text/ciao/

// rename via function
  .pipe(rename(function (path) {
    path.dirname += "/ciao";
    path.basename += "-goodbye";
    path.extname = ".md";
  .pipe(gulp.dest("./dist")); // ./dist/main/text/ciao/

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

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


  • 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


MIT License