{"id":13547492,"url":"https://github.com/megahertz/howfat","last_synced_at":"2025-10-26T22:32:02.293Z","repository":{"id":47444684,"uuid":"188236343","full_name":"megahertz/howfat","owner":"megahertz","description":"Shows how fat is a package","archived":false,"fork":false,"pushed_at":"2023-10-30T14:22:06.000Z","size":1395,"stargazers_count":97,"open_issues_count":6,"forks_count":8,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-27T04:10:59.444Z","etag":null,"topics":["dependencies","npm","package","size","stats","tree"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/megahertz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-23T13:08:49.000Z","updated_at":"2025-03-29T05:19:59.000Z","dependencies_parsed_at":"2023-02-10T07:46:11.589Z","dependency_job_id":"0fae1961-d46d-4900-9c66-818ee984454c","html_url":"https://github.com/megahertz/howfat","commit_stats":{"total_commits":68,"total_committers":3,"mean_commits":"22.666666666666668","dds":0.07352941176470584,"last_synced_commit":"30f181873b8f0e9749714107537f6844fff0ae9e"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/megahertz/howfat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/megahertz%2Fhowfat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/megahertz%2Fhowfat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/megahertz%2Fhowfat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/megahertz%2Fhowfat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/megahertz","download_url":"https://codeload.github.com/megahertz/howfat/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/megahertz%2Fhowfat/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263175996,"owners_count":23425675,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dependencies","npm","package","size","stats","tree"],"created_at":"2024-08-01T12:00:56.878Z","updated_at":"2025-10-26T22:31:57.260Z","avatar_url":"https://github.com/megahertz.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# howfat\n[![Tests](https://github.com/megahertz/howfat/actions/workflows/tests.yml/badge.svg)](https://github.com/megahertz/howfat/actions/workflows/tests.yml)\n[![NPM version](https://badge.fury.io/js/howfat.svg)](https://badge.fury.io/js/howfat)\n\nShows how fat is a package together with its dependencies\n\n![howfat](docs/screenshot.png)\n\n## Usage\n\n### Simple\n\n`npx howfat mkdirp`\n\nSpecified version or version range:\n\n`npx howfat mkdirp@^0.5.0`\n\nLocal packages\n\n```bash\ncd my-project\nnpx howfat\n```\n\n`npx howfat ../my-other-package`\n\nGit or github\n\n`npx howfat https://github.com/substack/node-mkdirp`\n\n`npx howfat ssh://git@github.com:substack/node-mkdirp.git#0.3.4`\n\n### Different reporters\n\nJust show a simple stats:\n\n```\n$ npx howfat -r simple mkdirp@0.5.1\nDependencies: 1\nSize: 41.49kb\nFiles: 37\n```\n\nas a table:\n\n```\n$ npx howfat -r table mkdirp@0.5.1\nmkdirp@0.5.1 (1 dep, 41.49kb, 37 files)\n╭────────────────┬──────────────┬─────────┬───────╮\n│ Name           │ Dependencies │    Size │ Files │\n├────────────────┼──────────────┼─────────┼───────┤\n│ minimist@0.0.8 │            0 │ 20.78kb │    14 │\n╰────────────────┴──────────────┴─────────┴───────╯\n```\n\nas a json:\n\n`$ npx howfat -r json mkdirp@0.5.1 --space 2`\n```json\n{\n  \"package\": \"mkdirp@0.5.1\",\n  \"dependencyCount\": 1,\n  \"fileCount\": 37,\n  \"unpackedSize\": 42486,\n  \"duplicate\": false,\n  \"error\": false,\n  \"unmet\": false,\n  \"author\": \"{name:James Halliday,email:mail@substack.net,url:http://substack.net}\",\n  \"deprecated\": \"Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)\",\n  \"description\": \"Recursively mkdir, like `mkdir -p`\",\n  \"license\": \"MIT\",\n  \"maintainers\": \"[{name:isaacs,email:i@izs.me}]\",\n  \"ownStats\": {\n    \"dependencyCount\": 1,\n    \"fileCount\": 23,\n    \"unpackedSize\": 21212\n  },\n  \"children\": [\n    {\n      \"package\": \"minimist@0.0.8\",\n      \"dependencyCount\": 0,\n      \"fileCount\": 14,\n      \"unpackedSize\": 21274,\n      \"duplicate\": false,\n      \"error\": false,\n      \"unmet\": false,\n      \"author\": \"{name:James Halliday,email:mail@substack.net,url:http://substack.net}\",\n      \"deprecated\": \"\",\n      \"description\": \"parse argument options\",\n      \"license\": \"MIT\",\n      \"maintainers\": \"[{email:ljharb@gmail.com,name:ljharb},{email:github@tixz.dk,name:emilbayes}]\",\n      \"ownStats\": {\n        \"dependencyCount\": 1,\n        \"fileCount\": 14,\n        \"unpackedSize\": 21274\n      },\n      \"children\": []\n    }\n  ]\n}\n```\n\n### Other options\n\n```\n  -d, --dev-dependencies BOOLEAN   Fetch dev dependencies, default false\n  -p, --peer-dependencies BOOLEAN  Fetch peer dependencies, default false\n  \n  -r, --reporter STRING            'json', 'simple', 'table', 'tree', default tree\n      --fields STRING              Displayed fields separated by a comma:\n                                   dependencies,size,files,license,\n                                   author,description,maintainers,deprec,\n                                   deprecated,node,os,platform\n      --sort STRING                Sort field. Add minus sign for \n                                   desc order, like size-. Default to 'name'\n      --space NUMBER               Use spaces in json output, default null\n                                   \n  -v, --verbose BOOLEAN            Show additional logs\n      --no-colors BOOLEAN          Prevent color output\n      --no-human-readable BOOLEAN  Show size in bytes\n      \n  --registry-url STRING            Default to https://registry.npmjs.org/\n                            \n  --http                           Node.js RequestOptions, like:\n  --http.timeout NUMBER            Request timeout in ms, default 10000\n  --http.connection-limit NUMBER   Max simultaneous connections, default 10\n  --http.retry-count NUMBER        Try to fetch again of failure, default 5\n  --http.proxy STRING              A proxy server url\n  \n  --show-config                    Show the current configuration\n  --version                        Show howfat version\n  --help                           Show this help\n```\n\n## Accuracy\n\nDifferent package managers use different dependency resolution algorithms. Even\ndifferent versions of the same manager will resolve different dependency tree.\nSo, this package tries to calculate stats similar to `npm`, but keep in mind that\nit provides approximate results.\n\n## Why should I care about my package size?\n\n- Small package is installed much faster on CI\n- Runs faster via `npx`\n- Less dependencies = less troubles\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmegahertz%2Fhowfat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmegahertz%2Fhowfat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmegahertz%2Fhowfat/lists"}