M-Izadmehr / deadfile

Simple util to find unused files in any JavaScript project (ES5, ES6, React, Vue, ...)
https://m-izadmehr.github.io/deadfile/
372 stars 20 forks source link
deadcode deadfile deadfile-js elimination javascript js unrequired unused unused-files
deadfile

deadfile

Simple util to find deadcode and unused files in any JavaScript project (ES5, ES6, React, Vue, ...).

deadfile result deadfile result

Supported Node Versions

This project uses optional chaining, so you need to use Node v14.0 + to be able to use it.

Installation

Install deadfile cli with the following command:

npm

$ npm install -g deadfile

yarn

$ yarn global add deadfile

npx

$ npx deadfile <file>

Usage and Examples

simple:

 deadfile ./src/index.js

multiple entry:

deadfile ./src/index.js ./src/entry2.js

with custom directory:

deadfile ./src/index.js --dir /path/to/other/folder

with exclude:

deadfile ./src/index.js --exclude tests  utils/webpack

without the report server or in CI scripts:

deadfile ./src/index.js --ci

What it does

Supported Syntaxes

All major ES Module imports are supported (including dynamic import): Import Syntax

Also the following export (aggregation) syntaxes are also supported: Export Aggregation Syntax

Development Environment

You can use deadfile for any JavaScript project, and go crazy with you code, use the latest features and it still works. Here are some examples:

JSX

React Example

Vue

Vue Example

Reassigned requires

deadfile look for import declarations and calls of the require function. As a result, if you assign require to another var and use it to load a dependency, it will not handle it.

Options

Paths or files to exclude from search. It supports any valid RegExp expression to exclude:

deadfile <file> --exclude ^(\w)png$
deadfile <file> --exclude webpack utils docs

---output: used to write report results in .json file

You can specify the file to write, a json file including file lists:

deadfile <file> --output report.json

Todo