Giter Site home page Giter Site logo

webpack-unused's Introduction

webpack-unused

Check your frontend code for files/assets that are no longer used.

Uses the output of webpack --json to see which files are actually used in your bundle, and lists files which haven't been required.

Usage:

# install webpack-unused
npm install -g webpack-unused

# run webpack using your normal webpack config etc
# with the --json switch to output the stats.json, and pipe to webpack-unused
# unused files in the cwd will be listed
webpack --json | webpack-unused

# if your source code is in a directory, like src/ pass that as a flag:
webpack --json | webpack-unused -s src

Notes/Caveats:

  • this doesn't check for any unused npm modules etc that you have installed (node_modules is ignored)
  • webpack-unused will detect non-js files that are required via loaders etc, however any requires that happen outside of webpack's knowledge may be incorrectly reported as unused, for example:
    • css-preprocessor imports, for example less's @import happens outside the webpack flow, so files which are only required via @import will report as unused, even if they are
  • it looks like currently files that would appear in your output from using webpack's NormalModuleReplacementPlugin don't appear in webpack's --json output, and so will be incorrectly reported as unused, while the original may be incorrectly reported as used. issue #1
  • ideally, you'll have all your frontend code in a src/ directory or similar so that you can use the -s flag, if not, any non-frontend code in cwd will be reported as unused

Related

Contributing, etc

This is just a first stab, and I'm publishing it because I constantly look for/rewrite code to achieve this. PRs/Suggestions for improvements very welcome.

webpack-unused's People

Contributors

jaller94 avatar latentflip avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

webpack-unused's Issues

Add an `ignore` option

This currently includes files like tests, snapshots, and storybook files - it'd be great if it could take a list of regexes to ignore (i'm happy to contribute if needed)

webpack --json doesn't correctly report modules concatenated with ModuleConcatenationPlugin()

Similar to #1, the issue here is on Webpack's side, but maybe worth documenting. ModuleConcatenationPlugin concatenates modules together and then generates a new identifier, which looks like: path/to/first/module.js + N modules, where N is the number of modules that were concatenated after the first, and because of that, webpack-unused can't see the full list of used files.

(Thank you for an incredibly useful tool! It worked really nicely out of the box in a large codebase, all I had to do was disable ModuleConcatenationPlugin temporarily)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.