https://github.com/cyansalt/vite-plugin-unused-code
Vite/Rollup plugin to detect unused files and unused exports in used files
https://github.com/cyansalt/vite-plugin-unused-code
Last synced: about 1 year ago
JSON representation
Vite/Rollup plugin to detect unused files and unused exports in used files
- Host: GitHub
- URL: https://github.com/cyansalt/vite-plugin-unused-code
- Owner: CyanSalt
- License: isc
- Created: 2023-06-05T06:51:54.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-04-03T08:41:30.000Z (over 1 year ago)
- Last Synced: 2025-04-18T18:32:21.880Z (over 1 year ago)
- Language: TypeScript
- Size: 549 KB
- Stars: 10
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# vite-plugin-unused-code
[](https://www.npmjs.com/package/vite-plugin-unused-code)
Vite/Rollup plugin to detect unused files and unused exports in used files.
This package is a ported version of [`webpack-deadcode-plugin`](https://github.com/MQuy/webpack-deadcode-plugin).
> [!IMPORTANT]
> **This plugin cannot check for dependencies of non-JavaScript files or exports (for example: CSS, or types from TypeScript files), which may be misreported as unused, even if they actually appear in the compiled bundles. Please be careful!**
## Installation
```shell
npm install --save-dev vite-plugin-unused-code
```
## Usage
```js
// vite.config.js
import unusedCode from 'vite-plugin-unused-code'
export default {
plugins: [
unusedCode({
patterns: ['src/**/*.*'],
}),
],
}
```
## Options
### `context`
- **Type:** `string`
- **Default:** `root` option of Vite, `process.cwd()` as a fallback
Current working directory where `patterns` and `exclude` are located.
### `patterns`
- **Type:** `string[]`
- **Default:** `['**/*.*']`
The array of [`micromatch`](https://github.com/micromatch/micromatch) patterns to look for unused files and unused export in used files.
### `exclude`
- **Type:** `string[]`
- **Default:** `[]`
*Deprecated*. The array of patterns to not look at. `{ exclude: ['foo'] }` is actually equivalent to `{ patterns: ['!foo'] }`.
This option is reserved only for compatibility with `webpack-deadcode-plugin`.
### `detectUnusedFiles`
- **Type:** `boolean`
- **Default:** `true`
Whether to run unused files detection or not.
### `detectUnusedExport`
- **Type:** `boolean`
- **Default:** `true`
Whether to run unused export detection in used files or not.
### `log`
- **Type:** `'all' | 'used' | 'none'`
- **Default:** `none` if `logLevel` option of Vite is `'silent'`, `'unused'` if `logLevel` option of Vite is `'error'` or `'warn'`, `'all'` otherwise
Adjust console output verbosity.
- `'all'`: Show all messages.
- `'used'`: Only show messages when there are either unused files or unused export.
- `'none'`: Won't show unused files or unused export messages in the console. It can keep terminal clean when set `exportJSON` to `true`.
### `exportJSON`
- **Type:** `boolean | string`
- **Default:** `false`
Whether to export data in JSON format. A `unused-code.json` file will be created in the current directory is specified as `true`. You can also specify a directory to create in it instead.
### `failOnHint`
- **Type:** `boolean`
- **Default:** `false`
Whether to interrupt the compilation when unused files or exports detected.