ranyitz/qnm

What does count actually mean?

Opened this issue · 3 comments

Hey, I tried going through the readme but I cannot figure out what the count is? It's not obvious or at least not obvious enough for my small brain?

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

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.

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.