UNPKG

vite-plugin-unused-code

Version:

Vite/Rollup plugin to detect unused files and unused exports in used files

99 lines (61 loc) 2.86 kB
# vite-plugin-unused-code [![npm](https://img.shields.io/npm/v/vite-plugin-unused-code.svg)](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!** > [!WARNING] > Rolldown does not report removed exports during tree shaking currently. Therefore, **unused exports will never be reported in Vite 8 or higher.** ## 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' | 'unused' | '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. - `'unused'`: 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.