grunt-file-regex-rename
Replaces strings on files by using string or regex patterns. Attempts to be a String.prototype.replace adapter task for your grunt project.Getting Started
To install this grunt plugin on your project simply do:npm install grunt-file-regex-rename
Then add this line to your project's
Gruntfile.js
:grunt.loadNpmTasks('grunt-file-regex-rename');
Documentation
Configuration
Inside yourGruntfile.js
file add a section named fileregexrename
. This section specifies the files to rename, destinations, patterns and replacements.Parameters
files ``object
``
This defines what files this task will edit and must follow Gruntfile Files mapping.options ``object
``
This controls how this task operates and should contain key:value pairs, see options below.Options
replacements ``array
``
This option will hold all your pattern/replacement pairs. A pattern/replacement pair should contain key:value pairs containing:- pattern ``
string
`or
`regex
` - replacement `
string
``
options: {
replacements: [{
pattern: /\/(asdf|qwer)\//ig,
replacement: "'$1'"
}, {
pattern: ",",
replacement: ";"
}]
}
Note
If the pattern is a string, only the first occurrence will be replaced, as stated on String.prototype.replace.Config Example
fileregexrename: {
dist: {
files: {
"path/to/directory/": "path/to/source/*", // includes files in dir
"path/to/directory/": "path/to/source/**", // includes files in dir and subdirs
"path/to/project-<%= pkg.version %>/": "path/to/source/**", // variables in destination
"path/to/directory/": ["path/to/sources/*.js", "path/to/more/*.js"], // include JS files in two diff dirs
"path/to/filename.ext": "path/to/source.ext"
},
options: {
replacements: [{
pattern: /\/(asdf|qwer)\//ig,
replacement: "'$1'"
}, {
pattern: ",",
replacement: ";"
}]
}
},
inline: {
options: {
replacements: [
// place files inline example
{
pattern: '<script src="js/async.min.js"></script>',
replacement: '<script><%= grunt.file.read("path/to/source/js/async.min.js") %></script>'
}
]
},
files: {...}
}
}