grunt-jscodeshift
Grunt task to run codemods using jscodeshift
Common Usage
jscodeshift is a tool for running codemods over multiple js files in parallel, which is great for refactoring large codebases. Read more about it here.
grunt-jscodeshift
is a simple Grunt task that wraps the jscodeshift runner and lets you execute transformations as part of your Grunt workflow.
Example (somewhat contrived)
Original source code file
code.js
var myHeading = document;myHeadingtextContent = 'Hello world!';
Transform file
transform.js
module { var j = apijscodeshift; return ;};
Transformed source code file
code.js
var gnidaeHym = tnemucod;gnidaeHymtnetnoCtxet = 'Hello world!';
Getting Started
This plugin requires Grunt ~0.4.5
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-jscodeshift --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt;
The "jscodeshift" task
grunt;
Since jscodeshift is designed for code-modifications, it overwrites the source files it iterates over.
If this is not your desired behavior, clone the files beforehand with grunt-contrib-copy.
Options
The options
object is passed to jscodeshift
. See the jscodeshift documentation for all options.
options.transform
Type: String
Default value: './transform.js'
Path to the transform file.
Contributing
Feel free to open issues and send pull-requests.
Running tests
Run npm test