Replaces strings on files by using string or regex patterns. Attempts to be a String.prototype.replace adapter task for your grunt project.
Install this grunt plugin next to your project's grunt.js gruntfile with: npm install grunt-string-replace
Then add this line to your project's grunt.js gruntfile:
grunt.loadNpmTasks('grunt-string-replace');Inside your grunt.js file add a section named string-replace. This section specifies the files to edit, destinations, patterns and replacements.
This defines what files this task will edit and should contain key:value pairs.
The key (destination) should be an unique path (supports grunt.template) and the value (source) should be a filepath or an array of filepaths (supports minimatch).
When copying to a directory you must add a trailing slash to the destination due to support of single file copy.
This controls how this task operates and should contain key:value pairs, see options below.
This option will hold all your pattern/replacement pairs. A pattern/replacement pair should contain key:value pairs containing:
- pattern
stringorregex - replacement
string
options: {
replacements: [{
pattern: /\/(asdf|qwer)\//ig,
replacement: "'$1'"
}, {
pattern: ",",
replacement: ";"
}]
}If the pattern is a string, only the first occurrence will be replaced, as stated on String.prototype.replace.
"string-replace": {
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: ";"
}]
}
}
}In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using grunt.
0.1.0 - Initial release
Copyright (c) 2012 Erick Ruiz de Chavez Licensed under the MIT license.
