npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

deadfile

v2.1.1

Published

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

Downloads

16,449

Readme

deadfile

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

  • Easy to use
  • Out of box support for ES5, ES6, React, Vue, ESM, CommonJs.
  • Error tolerant: deadfile uses loose parsing of your code, so if there are errors in your code, it still works. Even if you use some random babel config, it will parse your code and find imports.
  • Syntax support: it supports import/require and even dynamic import.
  • Shows you a warning for the node_modules you import, but do not appear in your package.json

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

  • entry: all arguments directly after deadfile are considered as entries (yes, deadfile supports multiple entries)
deadfile ./src/index.js ./src/entry2.js
  • --dir: set search in another folder:
deadfile <file> --dir /path/to/other/folder
  • --exclude: list of paths to ignore:

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

  • handle reassigned require
  • look for dead declarations too
  • Add support AMD
  • be able to include/exclude paths/extentions based on relPath/regex
  • allow file extensions for parsing, should default to (.js/.jsx/.ts/.tsx/.vue)
  • Add SASS import