Dead code detector for JavaScript/TypeScript. Written in Rust.
cargo install piorpior # analyze current directory
pior ./path/to/project # analyze specific path
pior --fix # auto-remove unused deps/exports
pior --format json # json output
pior --watch # re-run on file changes
pior --cache # cache parsed files- Unused files
- Unused exports
- Unused dependencies
- Unlisted dependencies
- Unresolved imports
Create pior.json:
{
"entry": ["src/index.ts"],
"project": ["src/**/*.ts"],
"ignore": ["**/*.test.ts"],
"ignoreDependencies": ["@types/node"]
}pior --workspaces # list workspaces
pior --workspace pkg-name # analyze single workspacepretty | json | compact | github | codeclimate
Tested on TanStack/query (908 files):
| Tool | Time |
|---|---|
| pior | 117 ms |
| knip | 3.5 s |
~30x faster
Single package (@tanstack/query-core, 52 files):
| Tool | Time |
|---|---|
| pior | 9.4 ms |
| knip | 473 ms |
~50x faster
Run your own:
hyperfine --warmup 2 -i 'pior' 'bunx knip'