in a big javascript project, sometimes you can forget to delete a unused file.
linters
and tree-shakers
are good at finding unused code in a module, but they can allow you to have a whole unused file somewhere in your project.
This script follows the require graph, and compares it to the ls
output, to find any files that are potentially not being used.
npm install -g unrequired
unrequired ./path/to/my/index.js
or from a node script:
const unrequired = require('unrequired')
let result = unrequired('./tests/mjs/index.js')
console.log(result)
/*
{
all:[ ... ], // all javascript files from a 'ls'
used:[ ... ], // all files in the sourcemap bundle
unused:[], // the diff between the two
}
*/
running it may be helpful in a large javascript project! who knows.
It uses rollup โญ๏ธ
Caveats
JSX, and other variants are not currently supported.
It atleast attempts to support esmodules
, .mjs files
, and some other things.
it won't catch any unrequired .json
files.
See Also
- unused-webpack-plugin by Matthieu Lemoine
- node-trucker by Dave Foley
MIT