sindresorhus / meow

🐈 CLI app helper
MIT License
3.54k stars 151 forks source link

Package size and number of dependencies #177

Open armano2 opened 3 years ago

armano2 commented 3 years ago

Hello, i'm a little concerned about size of this package and number of dependencies that it requires to run,

this package has 66 dependencies and weights 175kb with all its dependencies, as a comparison yargs has 16 dependencies and weights 76kb,

most of code in this package actually come from reading and normalizing package.json and that should be a trivial task as this package uses optionally 2 fields description and version.

my suggestion is to replace normalize-package-data and read-pkg-up with find-up and simple if condition.

this change should allow to reduce number of dependencies by half and reduce size by 70%

sindresorhus commented 3 years ago

I guess we could remove it, but it would be a breaking change as we expose the package as a .pkg object. We would also have to document that it's not normalized and how the user needs to manually normalize it if they want to access properties.

fregante commented 3 months ago

I looked into the usage of read-package-up and I think there are only 3 changes:

The first two changes I think are not that useful. If anything, it's unexpected to get a version different from what the user set. Same for the description

The normalized pkg property honestly seems a feature that doesn't have do be here, it was added because it came "free" with the usage of read-package-up. "Normalization" is useful when accessing third-party packages, less so for one's own package in the same folder.

Here's the most recent dependency tree, for who's curious: https://npmgraph.js.org/?q=meow%4012.0.1#select=exact%3Aread-pkg-up%409.1.0

Anything past that won't be parsed correctly due to:

fregante commented 3 months ago

To clarify, removing it is still a breaking change, but not something a lot of people will miss.