@infinitylist/ipm
v0.1.7-alpha.7
Published
Infinity package manager!
Downloads
7
Readme
Infinity Package Manager
npm-shrinkwrap based npm package manager for installing modules while offline or experiencing issues with npm.
What
@infinitylist/installer
uses npm-shrinkwrap
and points your package-lock.json
at npm
tarballs checked into your project's source control, so you can install while offline, during a registry outage, or
during the next left-pad incident.
How
- Read
package-lock.json
ornpm-shrinkwrap.json
. - Download the exact same .tgz files that
npm install
fetches from registry.npmjs.org. - Decompress the .tgz files into .tar files. This avoids storing binary files
in Git and removes the cost of decompression during
npm install
. - Store the .tar files in your project at
node_modules/*.tar
. - Rewrite
package-lock.json
to point at those instead of the registry.
Now your project can be installed while completely offline:
- npm install
+ npm ci --offline
The rest of the npm installation process is exactly the same. The only
difference is that no network activity is necessary when installing and building
your project. The node_modules
directory can be ignored in your editor
(much like is done with the node_modules
directory), but is instead checked
into source control.
Installation
Requires npm@7 or higher.
Install Base Module
npm install --global @infinitylist/installer
Generate npm-shrinkwrap.json
npm shrinkwrap
Usage
Run ipm
every time you have modified and installed your dependencies to
produce a new package-lock.json
.
Usage: ipm [options] [directory]
Options:
-V, --version output the version number
-h, --help display help for command