https://github.com/commenthol/offline-npm
hasslefree npm pack including all dependencies for offline installation with npm install
https://github.com/commenthol/offline-npm
Last synced: about 1 year ago
JSON representation
hasslefree npm pack including all dependencies for offline installation with npm install
- Host: GitHub
- URL: https://github.com/commenthol/offline-npm
- Owner: commenthol
- License: mit
- Created: 2014-08-12T06:21:12.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2016-09-14T19:55:14.000Z (almost 10 years ago)
- Last Synced: 2025-04-18T23:19:20.752Z (about 1 year ago)
- Language: JavaScript
- Size: 43.9 KB
- Stars: 20
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# offline-npm
> **npm >= v3.x bundled with node >= v5** has **[broken](https://github.com/npm/npm/issues/10379)** this project.
> `preinstall` script is since then called after requests to npm registry are made.
> This makes it impossible for `offline-npm` to start as a registry server.
> See [BROKEN.md](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](#installation)
* [Usage](#usage)
* [Tutorial](#tutorial)
* [Install packages from npm cache offline](#install-packages-from-npm-cache-offline)
* [Troubleshooting](#troubleshooting)
* [License](#license)
## Installation
npm install -g offline-npm
## Usage
1. Open terminal and go to your project you want to prepare for offline use.
This folder needs to contain a `package.json` file.
2. Prepare your project for offline use
offline-npm --add
This changes the `package.json` file and adds a `offline` folder which will contain all your dependencies.
3. 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.
4. Transfer the resulting `-.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] -.tgz
## Tutorial
Find [here](TUTORIAL.md) a step-by-step [tutorial](TUTORIAL.md) 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
> Use the `-f` switch to force installing packages. This might be required if `npm` stops stating "shasum" errors.
## Troubleshooting
1. Never add `*.tgz` into your `.npmignore` file. Otherwise all `package.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 `-*.tgz` instead.
2. The script needs access to `npm`. It is assumed that `npm` is installed alongside with `node`. If you experience problems with correcty resolving `npm`, add to your `$HOME/.profile` or `$HOME/.bashrc`
export NODE_PATH=/node_modules:$NODE_PATH
where `` is the path to the `node_modules` dir which contains npm.
3. If installation hangs try installing in verbose mode
`npm install .tgz --verbose`
If you see that some `.lock` in your files block you from progress, consider deleting them with `npm cache clean [@]`
## License
Copyright (c) 2014 commenthol
Software is released under [MIT][MIT].
[MIT]: ./LICENSE