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 🙏

© 2025 – Pkg Stats / Ryan Hefner

remove-unused-vars

v0.0.11

Published

Remove more unused variables

Downloads

34,548

Readme

remove-unused-vars

Remove more unused variables. Highly experimental.

[!WARNING]

There's a reason linters don't fix the unused variables, even with a flag like --unsafe or --fix-dangerously.

Modern linters can fix a lot of issues automatically, but don't always remove all unused variables and types. Even when using --unsafe or --fix-dangerously.

Use remove-unused-vars to remove everything the linter finds. Then run QA and review if there's anything that might need reverting. Needless to say, Git's your friend here!

Don't use e.g. eslint --fix or biome lint --write when piping to remove-unused-vars, otherwise the positions to remove things might not match up. Use the linter first to have it remove whatever it can, then proceed with the command(s) below.

[!TIP]

Use this with Knip for a cruel code crusher experience.

Install

npm install -D remove-unused-vars

Pipe JSON

Pipe the JSON-formatted output of the linter to remove-unused-vars

Add to package.json#scripts, modify the commands below and make sure to use local linter configuration.

ESLint

eslint --rule 'no-unused-vars: error' --quiet -f json | remove-unused-vars

typescript-eslint

eslint --rule 'no-unused-vars: off' --rule '@typescript-eslint/no-unused-vars: error' --quiet -f json | remove-unused-vars

Biome

biome lint \
  --only correctness/noUnusedVariables \
  --only correctness/noUnusedImports \
  --only correctness/noUnusedFunctionParameters \
  --reporter json | remove-unused-vars

oxlint

oxlint -A all -D 'no-unused-vars' -D '@typescript-eslint/no-unused-vars' -f json | remove-unused-vars

From JSON file

Alternatively, provide a JSON file as the first argument to remove-unused-vars, for example:

oxlint -A all -D '@typescript-eslint/no-unused-vars' -f json > unused-vars.json
remove-unused-vars unused-vars.json

Without installation

Use something like this without installing remove-unused-vars:

eslint -- --quiet --format json | npx -y remove-unused-vars