What is ts-prune?
The ts-prune npm package is a tool designed to help developers identify and remove unused exports in TypeScript projects. It analyzes the codebase to find exports that are not being imported anywhere, which can help in cleaning up the code and reducing the bundle size.
What are ts-prune's main functionalities?
Identify Unused Exports
This command scans the TypeScript project and lists all the exports that are not being used anywhere in the codebase. It helps developers identify dead code that can be safely removed.
npx ts-prune
Custom Configuration
You can customize the behavior of ts-prune by providing a configuration file. This example shows how to specify entry points and exclude certain files from the analysis.
{
"entryPoints": ["src/index.ts"],
"exclude": ["**/*.test.ts"]
}
Other packages similar to ts-prune
ts-unused-exports
The ts-unused-exports package is another tool for identifying unused exports in TypeScript projects. It provides similar functionality to ts-prune but with a different approach to configuration and output formatting.
depcheck
Depcheck is a tool that helps to find unused dependencies in a JavaScript or TypeScript project. While it focuses more on dependencies rather than exports, it can be used in conjunction with ts-prune to clean up both unused exports and dependencies.
tslint
TSLint is a linter for TypeScript that can be configured to catch various issues, including unused variables and imports. While it is more general-purpose compared to ts-prune, it can be extended with custom rules to achieve similar results.

ts-prune
Find potentially unused exports in your Typescript project with zero configuration.

Getting Started
ts-prune
exposes a cli that reads your tsconfig file and prints out all the unused exports in your source files.
Installing
Install ts-prune with yarn or npm
npm install ts-prune --save-dev
yarn add -D ts-prune
Usage
You can install it in your project and alias it to a npm script in package.json.
{
"scripts": {
"find-deadcode": "ts-prune"
}
}
If you want to run against different Typescript configuration than tsconfig.json:
ts-prune -p tsconfig.dev.json
Examples
Configuration
ts-prune supports CLI and file configuration via cosmiconfig (all file formats are supported).
Configuration options
-p, --project
- tsconfig.json path(tsconfig.json
by default)-i, --ignore
- errors ignore RegExp pattern-e, --error
- return error code if unused exports are found-s, --skip
- skip these files when determining whether code is used. (For example, .test.ts?
will stop ts-prune from considering an export in test file usages)
CLI configuration options:
ts-prune -p my-tsconfig.json -i my-component-ignore-patterns?
Configuration file example ts-prunerc
:
{
"ignore": "my-component-ignore-patterns?"
}
FAQ
How do I get the count of unused exports?
ts-prune | wc -l
How do I ignore a specific path?
ts-prune | grep -v src/ignore-this-path
How do I ignore a specific identifier?
You can either,
1. Prefix the export with // ts-prune-ignore-next
export const thisNeedsIgnoring = foo;
2. Use grep -v
to ignore a more widely used export name
ts-prune | grep -v ignoreThisThroughoutMyCodebase
Acknowledgements
Contributors