gulp-rename
gulp-rename is a gulp plugin to rename files easily.
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.mdSee test/rename.spec.js for more examples and test/path-parsing.spec.js for hairy details.
Notes
dirnameis the relative path from the base directory set bygulp.srcto the filename.gulp.src()uses glob-stream which sets the base to the parent of the first directory glob (*,**, [], or extglob).dirnameis the remaining directories or./if none. glob-stream versions >= 3.1.0 (used by gulp >= 3.2.2) accept abaseoption, which can be used to explicitly set the base.gulp.dest()renames the directories betweenprocess.cwd()anddirname(i.e. the base relative to CWD). Usedirnameto rename the directories matched by the glob or descendents of the base of option.
basenameis the filename without the extension likepath.basename(filename, path.extname(filename)).extnameis the file extension including the.likepath.extname(filename).- when using a function, a second
fileargument is provided with the whole context and original file value. - when using a function, if no
Objectis returned then the passed parameter object (along with any modifications) is re-used.
