Auto-fix
Run Knip as you normally would, and then run it again with the --fix
flag to
let Knip automatically apply fixes. Currently includes:
- Remove
export
keyword for unused exports and exported types - Remove unused
dependencies
anddevDependencies
frompackage.json
- Remove unused files
- Works across workspaces in a monorepo
Add the --fix
flag to remove unused exports and dependencies:
Add --allow-remove-files
to allow Knip to remove unused files:
Use --fix-type
to fix only specific issue types (files
, exports
, types
and/or dependencies
). Example:
Use VCS/Git to review and undo changes if necessary.
Post-fix
After Knip has fixed issues, there are two things to consider:
- Use tools like ESLint or Biome to find and remove unused variables inside files. This may result in more deleted code, and Knip may then find more unused code. Rinse and repeat!
- Verify changes in
package.json
and update dependencies using your package manager:
Example results
The export
keyword for unused exports is removed:
The default
keyword was also removed here.
Knip cleans up the whole or part of re-exports:
Sometimes lines can be removed completely:
Unused dependencies are removed from package.json
:
What’s not included
Operations that auto-fix does not yet perform include:
- Add unlisted (dev) dependencies to
package.json
- Remove unused class and enum members
- Remove empty export declarations for less common cases, e.g.:
ISC License © 2024 Lars Kappert