Exciting release!Introducing "safe npm". Learn more
Socket
Log inDemoInstall

grunt-jscodeshift

Package Overview
Dependencies
1
Maintainers
1
Versions
1
Issues
File Explorer

Advanced tools

grunt-jscodeshift

Grunt task to run codemods using jscodeshift

    0.1.0latest
    GitHub

Version published
Maintainers
1
Weekly downloads
421
decreased by-44.97%

Weekly downloads

Readme

Source

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.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!';

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.loadNpmTasks('grunt-jscodeshift');

The "jscodeshift" task

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.

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

Keywords

FAQs

Last updated on 08 Mar 2016

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.

Install Socket
Socket
support@socket.devSocket SOC 2 Logo

Product

  • Package Issues
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc