offline-npm
v0.2.2
Published
npm pack for offline installation
Downloads
255
Readme
offline-npm
npm >= v3.x bundled with node >= v5 has broken this project.
preinstall
script is since then called after requests to npm registry are made.
This makes it impossible foroffline-npm
to start as a registry server.
See BROKEN.md for detailed logs.
Hassle-free npm pack
including all dependencies for offline installation with npm install
Add offline-npm
to your project to serve a npm compatible tgz file wich contains all dependencies for offline installation with npm install
.
Additionally you can use offline-npm -n
to install packages from your local npm cache directory (Could be useful e.g. on travelling).
Even installs using git:
or file:
(requires node>=0.11) are considered.
Table of Contents
Installation
npm install -g offline-npm
Usage
Open terminal and go to your project you want to prepare for offline use. This folder needs to contain a
package.json
file.Prepare your project for offline use
offline-npm --add
This changes the
package.json
file and adds aoffline
folder which will contain all your dependencies.Pack your project
npm pack
Now the local cache is changed and all your projects dependencies will be downloaded into
offline/cache
and packed into the npm tgz file.Note: Take care not to add a global
*.tgz
into your.npmignore
file!Note: An existing
npm-shrinkwrap.json
file will get overwritten in this step to provide install without the--registry
switch. A backup is stored in the./offline
folder.Transfer the resulting
<name>-<version>.tgz
from the pack command onto a machine with no connectivity to the required registry. Execute this line from a terminal.Now install the package with:
npm install [-g] <name>-<version>.tgz
Tutorial
Find here a step-by-step tutorial using a provided sample project.
Install packages from npm cache offline
If you want to use your local npm cache to install packages from use the option
offline-npm -n [-d]
-d
shows you some server logs on the console.
Then install packages from the local npm cache with:
npm --registry http://localhost:4873 [-f] install <packagename>
Use the
-f
switch to force installing packages. This might be required ifnpm
stops stating "shasum" errors.
Troubleshooting
Never add
*.tgz
into your.npmignore
file. Otherwise allpackage.tgz
files for the offline installation will be missing.If you want to exclude previously packed versions of the package you're working with use
<name>-*.tgz
instead.The script needs access to
npm
. It is assumed thatnpm
is installed alongside withnode
. If you experience problems with correcty resolvingnpm
, add to your$HOME/.profile
or$HOME/.bashrc
export NODE_PATH=<path_to_node_modules>/node_modules:$NODE_PATH
where
<path_to_node_modules>
is the path to thenode_modules
dir which contains npm.If installation hangs try installing in verbose mode
`npm install <name-version>.tgz --verbose`
If you see that some
.lock
in your files block you from progress, consider deleting them withnpm cache clean <pkg>[@<version>]
License
Copyright (c) 2014 commenthol
Software is released under MIT.