jscodeshift
Version:
A toolkit for JavaScript codemods
162 lines (85 loc) • 3.44 kB
text/mdx
---
title: CLI Reference
---
import { Aside } from '@astrojs/starlight/components';
The `jscodeshift` command-line interface (CLI) allows you to run jscodeshift codemods using a terminal or through an automated system.
## Usage
You can use the `jscodeshift` command to run codemods in 4 different ways
**Option 1: Run from `transform.js` file in current working directory:**
```bash
jscodeshift [OPTION]... PATH...
```
This automatically looks for a `transform.js` file in the current working directory and attempts to run the transform over the specified `PATH`.
**Option 2: Run from specific transform file:**
```bash
jscodeshift [OPTION]... -t TRANSFORM_PATH PATH...
```
This allows you to specify a path to a transform file and run the transform over the specified `PATH`.
**Option 3: Run from specific transform URL:**
```bash
jscodeshift [OPTION]... -t URL PATH...
```
This allows you to specify a URL to a transform file and run the transform over the specified `PATH`.
**Option 4: Apply transform to standard input:**
```bash
jscodeshift [OPTION]... --stdin < file_list.txt
```
Using `--stdin` allows you to run the transform over every line of standard input provided in `file_list.txt`.
## Options
### `--(no-)babel`
`default: true`
This allows you to apply babeljs to the transform file.
### `--cpus=N`
`aliases: -c`
`default: max(all - 1, 1)`
This allows you to start at most N child processes to process source files.
### `--(no-)dry`
`aliases: -d`
`default: false`
This allows you to dry run the codemod. Dry running is useful when you need to see how a codemod will affect your project without making changes to your files.
### `--extensions=[EXT]`
`default: js`
Allows you to specify the extension of the files to be transformed.
### `--help`
`aliases: -h`
Allows you to print the help menu.
### `--ignore-config=[FILE] ...`
Allows you to ignore files if they match patterns sourced from a configuration file (e.g. a .gitignore).
### `--ignore-pattern=[GLOB] ...`
Allows you to ignore files that match a provided glob expression.
### `--(no-)gitignore`
`default: false`
Allows you to add entries to the current directory's .gitignore file.
### `--parser=[PARSER]`
`default: babel`
`available options: babel|babylon|flow|ts|tsx`
Allows you to specify the parser to use for parsing the source files.
### `--parser-config=[FILE]`
Allows you to specify path to a JSON file containing a custom parser configuration for flow or babylon.
### `--(no-)print`
`aliases: -p`
`default: false`
Allows you to print transformed files to stdout, useful for development.
### `--(no-)run-in-band`
`default: false`
Allows `jscodeshift` to run serially in the current process.
### `--(no-)silent`
`aliases: -s`
`default: false`
Allows you to run silently (prevent writing to stdout or stderr).
### `--(no-)stdin`
`default: false`
Allows you to run the transform over every line of standard input.
### `--transform=[FILE]`
`aliases: -t`
`default: ./transform.js`
Allows you to specify a path to the transform file. Can be either a local path or url.
### `--verbose=[MODE]`
`aliases: -v`
`available options: 0|1|2`
`default: 0`
Allows you to show more information about the transform process.
### `--version`
Allows you to print your `jscodeshift` version.
### `--fail-on-error`
Allows you to return a 1 exit code when errors were found during execution of codemods.