grunt-jscodeshift
Advanced tools
Weekly downloads
Readme
Grunt task to run codemods using jscodeshift
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.
Original source code file
code.js
var myHeading = document.querySelector('h1');
myHeading.textContent = 'Hello world!';
Transform file
transform.js
module.exports = function transformer(file, api) {
var j = api.jscodeshift;
return j(file.source)
.find(j.Identifier)
.replaceWith(function(p) {
return j.identifier(p.node.name.split('').reverse().join('')); })
.toSource();
};
Transformed source code file
code.js
var gnidaeHym = tnemucod.rotceleSyreuq('h1');
gnidaeHym.tnetnoCtxet = 'Hello world!';
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.loadNpmTasks('grunt-jscodeshift');
grunt.initConfig({
"jscodeshift": {
"some-target": {
"options": {
"transform": "./transform.js"
},
"src": ["src/**/*.js"]
}
},
});
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.
The options
object is passed to jscodeshift
. See the jscodeshift documentation for all options.
Type: String
Default value: './transform.js'
Path to the transform file.
Feel free to open issues and send pull-requests.
Run npm test
FAQs
Grunt task to run codemods using jscodeshift
The npm package grunt-jscodeshift receives a total of 298 weekly downloads. As such, grunt-jscodeshift popularity was classified as not popular.
We found that grunt-jscodeshift demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.