Removing unused code reduces bundle size and maintenance burden.
Knip is a powerful tool to find unused files, dependencies, and exports.
# Install
npm install --save-dev knip
# Run analysis
npx knipFind unused exports in your TypeScript files.
# Run directly with npx
npx ts-prune | grep -v "(used in module)"Ensure your package.json and bundler config (Vite/Webpack) support tree shaking.
- Set
"sideEffects": falseinpackage.jsonfor libraries that don't have side effects. - Use ES Modules (
import/export) instead of CommonJS (require).
- Search for Usage: Before deleting, use
grepor IDE search to verify no dynamic references exist. - Delete and Test: Delete the code, run the full test suite, and check for runtime errors.
- Side Effects: Be careful with code that has side effects (e.g., global polyfills, CSS imports).
- Dynamic Access: Tools might miss code accessed via dynamic strings (e.g.,
evalorobject[someVar]). - Dependencies: Don't just delete code; also remove unused packages from
package.json(npm uninstall).
A leaner codebase with reduced bundle sizes, faster build times, and less "noise" for developers to maintain.