Find potentially unused exports in your Typescript project with zero configuration.
npm install ts-prune-2Find potentially unused exports in your Typescript project with zero configuration.
 
ts-prune exposes a cli that reads your tsconfig file and prints out all the unused exports in your source files.
Install ts-prune with yarn or npm
``sh`npm
npm install ts-prune --save-devyarn
yarn add -D ts-prune
You can install it in your project and alias it to a npm script in package.json.
`json`
{
"scripts": {
"find-deadcode": "ts-prune"
}
}
If you want to run against different Typescript configuration than tsconfig.json:
`sh`
ts-prune -p tsconfig.dev.json
- gatsby-material-starter
- DestinyItemManager
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:
`bash`
ts-prune -p my-tsconfig.json -i my-component-ignore-patterns?
Configuration file example .ts-prunerc:
`json`
{
"ignore": "my-component-ignore-patterns?"
}
#### How do I get the count of unused exports?
`sh`
ts-prune | wc -l
#### How do I ignore a specific path?
You can either,
##### 1. Use the -i, --ignore configuration option:
`sh`
ts-prune --ignore 'src/ignore-this-path'
##### 2. Use grep -v to filter the output:
`sh`
ts-prune | grep -v src/ignore-this-path
#### How do I ignore multiple paths?
You can either,
##### 1. Use the -i, --ignore configuration option:
`sh`
ts-prune --ignore 'src/ignore-this-path|src/also-ignore-this-path'
##### 2. Use multiple grep -v to filter the output:
`sh`
ts-prune | grep -v src/ignore-this-path | grep -v src/also-ignore-this-path
#### How do I ignore a specific identifier?
You can either,
##### 1. Prefix the export with // ts-prune-ignore-next
`ts`
// ts-prune-ignore-next
export const thisNeedsIgnoring = foo;
##### 2. Use grep -v to ignore a more widely used export name
`sh``
ts-prune | grep -v ignoreThisThroughoutMyCodebase
- The excellent ts-morph library. And this gist by @dsherret.