Skip to main content
Fallow can replace jscpd when you want duplication detection as part of a broader codebase audit. It also covers unused code detection, complexity analysis, circular dependencies, and architecture boundaries in the same binary.

Migration workflow

1

Preview the migration

Run fallow migrate --dry-run to see the generated config without writing anything:
Fallow searches for .jscpd.json and the jscpd field in package.json.
2

Generate the config

Once you’re happy with the preview, run the migration:
3

Review the config

Open the generated config and verify the translated thresholds, token counts, and ignore patterns.
4

Run fallow dupes

Run your first duplication analysis:
The default mild mode normalizes syntax variations and may flag more clones than jscpd did. For results closest to jscpd’s exact token matching, use --mode strict.

What gets migrated

Comparison

Detection mode mapping

jscpd v5 supports strict, mild, and weak modes. The closest fallow equivalent for exact token matching is strict. Fallow defaults to mild mode, which normalizes syntax variations and may flag more clones than jscpd did. To match jscpd’s behavior more closely, use strict mode:
For broader matching that catches renamed variables:

One tool for the full picture

Fallow covers unused code, duplication, complexity hotspots, circular dependencies, and architecture boundaries in a single binary. It can replace separate jscpd, knip, and madge workflows when you want one combined audit.

See also

Duplication analysis

Deep dive into fallow’s duplication detection engine.

fallow dupes

Full CLI reference for the dupes command.