Giter Club home page Giter Club logo

Comments (3)

ranyitz avatar ranyitz commented on May 10, 2024 1

if they are all the same version, then there will just be one copy on disk, and one copy inserted in web bundles

@dylang It depends on the package manager and the installation strategy. qnm is not a bundle analyzer, but if you have multiple instances of lodash in the node_modules it means you could have multiple instances of lodash with the same version in the bundle.

"count" checks how many occurrences you have in the node_modules, e.g. if you have 16 directories of lodash it will say that count is 16. Those 16 directories could be from different versions, or from the same version. qnm reads the lock file to get additional information, but it shows count data based on what you have in the file system as the source of truth.

I agree that having multiple versions of the same module is bad, and that deduplication is helpful and important. I'm willing to add another column of "versions" (in addition to the current "count" column). I would happily accept a PR that adds it.

from qnm.

ranyitz avatar ranyitz commented on May 10, 2024

If you mean the "count" header when running "qnm doctor", this is the amount of occurrences of this module within the node_modules
image

In the picture above it says that we have 18 instances of @types/node which together weight 27.42mb

from qnm.

dylang avatar dylang commented on May 10, 2024

count currently isn't helpful because if they are all the same version, then there will just be one copy on disk, and one copy inserted in web bundles.

It would be helpful if count was how many different/unique versions are specified in the lockfile. Different versions means each version must be downloaded and saved on disk. If included in web bundles, multiple versions of a dependency will cause rapidly increases bundle size.

This is why lockfile deduplication is helpful and important.

from qnm.

Related Issues (20)

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.