{"_id":"@amank037/fnpm","_rev":"7-e1e71162cd381d3d44e83a7962e4cb99","name":"@amank037/fnpm","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@amank037/fnpm","version":"0.1.0","license":"MIT","_id":"@amank037/fnpm@0.1.0","maintainers":[{"name":"amank037","email":"amank.business@outlook.com"}],"bin":{"fnpm":"bin/fnpm.js"},"dist":{"shasum":"049534d66d49f7d6ddb9227b131ad324a84be7fc","tarball":"https://registry.npmjs.org/@amank037/fnpm/-/fnpm-0.1.0.tgz","fileCount":7,"integrity":"sha512-jow7xZdNlQ7OLnnDEQtg9aNmVfqQR71049bpfDNq72oRflB6q99Hl17NmFot5EIrw4QtsZXut4psP/4ZGmJMZw==","signatures":[{"sig":"MEUCIQCIYPh0+t44fZznkKpxi3mM7/hjIl1oLlKiFCTRIInoHQIgdgiwrYbPn2VmDG4wdUIIS3L6EOTZT9Wk1jjAsMec8gc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14245},"engines":{"node":">=16"},"_npmUser":{"name":"amank037","email":"amank.business@outlook.com"},"_npmVersion":"10.9.3","description":"Disk-efficient npm install replacement using a shared hardlink store","directories":{},"_nodeVersion":"22.18.0","dependencies":{"tar":"^6.2.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fnpm_0.1.0_1788275496663_0.8637558328505528","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@amank037/fnpm","version":"0.1.1","license":"MIT","_id":"@amank037/fnpm@0.1.1","maintainers":[{"name":"amank037","email":"amank.business@outlook.com"}],"bin":{"fnpm":"bin/fnpm.js"},"dist":{"shasum":"f627ac596386cf75bf69adb7a88eccdcd01e9d9b","tarball":"https://registry.npmjs.org/@amank037/fnpm/-/fnpm-0.1.1.tgz","fileCount":8,"integrity":"sha512-X4MmevxSY66luAJ5whtBG3eZo/d9765Mz79re3YYN8rXJ1hRHbXuMg0wh0Q2aPw4EPnUxIFySLun2QtW8bDh4A==","signatures":[{"sig":"MEUCIA5fyyRSiFbxmQYvbF/zSR6V+zLG3a5yGVkTfXM5HinlAiEA6HvTIgOA8PhHG8r95L5D3/IXxo0EFPaOZ92ICwuTQd8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC8Dm4doHR6lWeSGbIIBVI6Q/4vGNHmpj6L5wHeSMsejwIhAOXfDE6OtfDrxjGS6LDV/2AIwMHhhEogUH2XYjh3Sbxo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15105},"engines":{"node":">=16"},"_npmUser":{"name":"amank037","email":"amank.business@outlook.com"},"_npmVersion":"10.9.3","description":"Disk-efficient npm install replacement using a shared hardlink store","directories":{},"_nodeVersion":"22.18.0","dependencies":{"tar":"^7.5.22"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fnpm_0.1.1_1788276187798_0.8720810744586263","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@amank037/fnpm","version":"0.1.2","license":"MIT","_id":"@amank037/fnpm@0.1.2","maintainers":[{"name":"amank037","email":"amank.business@outlook.com"}],"bin":{"fnpm":"bin/fnpm.js"},"dist":{"shasum":"e3c282c60de06bc5d2638b4d99b0dfa3ebf9edb2","tarball":"https://registry.npmjs.org/@amank037/fnpm/-/fnpm-0.1.2.tgz","fileCount":8,"integrity":"sha512-WXkK2m51bo4gJWYZMKz+PyglBrlL15cW7OFUXY8DBiBPPHG5ggzZkBtYvZgbkK2/wjmcwSx1ZFnWQ5IxpkvJ8Q==","signatures":[{"sig":"MEUCIADYzEkQ/tOmX7j9rYAhVqXGaoK2Wxk4pCDdgsPuD6KRAiEAsTf/N0DK8JuVYvy8fmuQTNK6E1l3DjpJfTAITHlC1eQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFgoaIm5/BGCkjAc6JseMEiJ1Ig5YiuE48J8YsKcQmzSAiBk25AQ+cspAgfPCtNCN41m1y3BB4mbYRDuyBNefhGWiw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15170},"engines":{"node":">=16"},"_npmUser":{"name":"amank037","email":"amank.business@outlook.com"},"_npmVersion":"10.9.3","description":"Disk-efficient npm install replacement using a shared hardlink store","directories":{},"_nodeVersion":"22.18.0","dependencies":{"tar":"^7.5.22"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fnpm_0.1.2_1788277239697_0.32726869705455286","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@amank037/fnpm","version":"0.1.3","license":"MIT","_id":"@amank037/fnpm@0.1.3","maintainers":[{"name":"amank037","email":"amank.business@outlook.com"}],"bin":{"fnpm":"bin/fnpm.js"},"dist":{"shasum":"7503986102c15c0e1073b1e8b84109ff1e36b359","tarball":"https://registry.npmjs.org/@amank037/fnpm/-/fnpm-0.1.3.tgz","fileCount":8,"integrity":"sha512-WJL0gFhInd0JVAUqNdK5gzJjpBYVTFlaGGbGvX5T0wcBxEh3pJ1aJc7gwXC8EIxPsw1Rjg2TmjlTV60u7df8Tw==","signatures":[{"sig":"MEYCIQD876c4TgMcGLVVB+NAcRpCQuOju4lbLd7EendcPggqcgIhAP6KB4klYa7TXmRyBbWqBn2afeRrI9PGCui63+8QIhhD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEXZmlEeflVUlN/SxuhbFSa8FslwoYNiw5ttlzhTf702AiBIz4Z92poGqtHTDnEfdeTVO08A+ZRA+PVhgsHZ5T/cFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15604},"engines":{"node":">=16"},"_npmUser":{"name":"amank037","email":"amank.business@outlook.com"},"_npmVersion":"10.9.3","description":"Disk-efficient npm install replacement using a shared hardlink store","directories":{},"_nodeVersion":"22.18.0","dependencies":{"tar":"^7.5.22"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fnpm_0.1.3_1788278384055_0.05330201345091323","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@amank037/fnpm","version":"0.1.4","license":"MIT","_id":"@amank037/fnpm@0.1.4","maintainers":[{"name":"amank037","email":"amank.business@outlook.com"}],"bin":{"fnpm":"bin/fnpm.js"},"dist":{"shasum":"0dc4e1b7fd93fab25041aa8c1b08867c4939752c","tarball":"https://registry.npmjs.org/@amank037/fnpm/-/fnpm-0.1.4.tgz","fileCount":8,"integrity":"sha512-3xV4fZeqr/8AL2Dx2U6nnAeH/ri//+qXcdNdjoL2f0ZARRTX7RxyFte/gNcJxdg4Qdkl3HILQXlwyHh2T4D+9Q==","signatures":[{"sig":"MEYCIQDqamVCTjzvyLpeTmDCPuoEaAwCFl+7aCnS3ry4Lv9ZHwIhAJx2Ow+nr1GPAs9RvtKljmwwB5zY0WIMYEwwuv/N3Qk+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIC/oQ2LUBw+/Ge7uTR1yC/P+LWirlm0GtLZmw+rWV5fvAiBpth/kkchnSV9IxmyxuYGij+KRoQGVc3Qt+3MwS3pw8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17103},"engines":{"node":">=16"},"_npmUser":{"name":"amank037","email":"amank.business@outlook.com"},"_npmVersion":"10.9.3","description":"Disk-efficient npm install replacement using a shared hardlink store","directories":{},"_nodeVersion":"22.18.0","dependencies":{"tar":"^7.5.22"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fnpm_0.1.4_1788280742834_0.7047716979937","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@amank037/fnpm","version":"0.2.0","license":"MIT","_id":"@amank037/fnpm@0.2.0","maintainers":[{"name":"amank037","email":"amank.business@outlook.com"}],"bin":{"fnpm":"bin/fnpm.js"},"dist":{"shasum":"b0ecf7e60fe7bfaa6fa8b9ef1ca4ae73c589f33e","tarball":"https://registry.npmjs.org/@amank037/fnpm/-/fnpm-0.2.0.tgz","fileCount":8,"integrity":"sha512-e5zgXFRNo/94tZDlSPDhI3dga12A5cMFCP+zs9JTQoqq5mths1XjGlnkADPKYF1CG9hIrqkGeHszXRyIhAuBlA==","signatures":[{"sig":"MEQCIGRPTu1XLSX5w2jGwobCU3DvbAmSxd932K35TuL0LEomAiBuHoX4JmFzu3IpybKh9JW+gHT0k5mK0DOJFMaA/YD41w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCgyok3XCFXN5OOXMU3QoLE/L+3wTLtXE+NN88afk9hJQIhAJRvjo5Mp7WoNXvjKOWNq9NVpOOcgSolwdx3/c3GD/de","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17641},"engines":{"node":">=16"},"_npmUser":{"name":"amank037","email":"amank.business@outlook.com"},"_npmVersion":"10.9.3","description":"Disk-efficient npm install replacement using a shared hardlink store","directories":{},"_nodeVersion":"22.18.0","dependencies":{"tar":"^7.5.22"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fnpm_0.2.0_1788282287713_0.6343237313519818","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"_id":"@amank037/fnpm@0.2.1","bin":{"fnpm":"bin/fnpm.js"},"dist":{"shasum":"455067f697c2be509029af673c4be2a8168b17ca","tarball":"https://registry.npmjs.org/@amank037/fnpm/-/fnpm-0.2.1.tgz","fileCount":8,"integrity":"sha512-S1eFco8Qr+5KjDUTgnIiQ8iNvL6pLzB/Ti4oJshJFupQ4LWpxe8NksjaWBNTWWo2n38e4KpN/CvtwzH31XsZFw==","signatures":[{"sig":"MEUCIE/ltNdeEm07fO2nKpfrqYBoNccNPeiwgjTWRo78iPTbAiEAiqTQuwXEaWgNMVyHv3L8MhqVVjvZowXGsPewed0lnFc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIH75N57BXIujA22GQ92tIwPF9XN9IliprvAbPMpQRwDKAiEA1BWK7ADqhmE0g2cThkMefkVCyeCarISyeN94TDe8o+w="}],"unpackedSize":18741},"name":"@amank037/fnpm","engines":{"node":">=16"},"license":"MIT","version":"0.2.1","_npmUser":{"name":"amank037","email":"amank.business@outlook.com"},"_npmVersion":"10.9.3","description":"Disk-efficient npm install replacement using a shared hardlink store","directories":{},"maintainers":[{"name":"amank037","email":"amank.business@outlook.com"}],"_nodeVersion":"22.18.0","dependencies":{"tar":"^7.5.22"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fnpm_0.2.1_1788332029194_0.06268977802530551"}}},"time":{"created":"2026-09-01T15:11:36.394Z","modified":"2026-09-02T06:53:49.502Z","0.1.0":"2026-09-01T15:11:36.822Z","0.1.1":"2026-09-01T15:23:07.893Z","0.1.2":"2026-09-01T15:40:39.792Z","0.1.3":"2026-09-01T15:59:44.138Z","0.1.4":"2026-09-01T16:39:02.936Z","0.2.0":"2026-09-01T17:04:47.796Z","0.2.1":"2026-09-02T06:53:49.283Z"},"license":"MIT","description":"Disk-efficient npm install replacement using a shared hardlink store","maintainers":[{"name":"amank037","email":"amank.business@outlook.com"}],"readme":"# fnpm\n\n**Install globally: `npm i -g @amank037/fnpm@latest`**\n\n> ⚠️ **Note:** This tool was originally built for personal use to solve disk bloat across many local projects. It is published publicly in case it helps others with similar setups, but it is not intended as a production-grade npm replacement. Use at your own discretion.\n\n## What it does\n\n`fnpm` eliminates duplicate `node_modules` disk usage by storing each unique `package@version` **once** in a global store (`~/.fnpm-store`) and **hardlinking** it into every project that needs it.\n\n- 10 projects using `react@18.3.1` → stored once on disk, hardlinked 10 times\n- Platform-specific optional dependencies (e.g., `@esbuild/linux-arm64` on Windows) are automatically skipped — only binaries matching your current OS and architecture are downloaded and stored\n- Store files are set read-only to prevent silent corruption\n- Subsequent installs fast-path instantly if `package-lock.json` hasn't changed\n\nIn real-world usage across multiple React/Vite projects, per-project `node_modules` dropped by **85–97%** compared to regular `npm install`, and total shared store size reduced by over **90%** after platform-aware filtering was added. Savings compound with every additional project sharing the same tech stack.\n\n## Commands\n\n```sh\nfnpm install          # Replaces \"npm install\"\nfnpm i                # Short alias\nfnpm run <script>     # Replaces \"npm run <script>\" (thin passthrough)\n```\n","readmeFilename":"README.md"}