Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Node.js virtual environment builder
Python
Tag: 0.3.0

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
.gitignore
LICENSE
README.rst
nodeenv.py
setup.py

README.rst

Node.js virtual environment

nodeenv (node.js virtual environment) is a tool to create isolated node.js environments.

It creates an environment that has its own installation directories, that doesn't share libraries with other node.js virtual environments.

Install

You can install nodeenv with easy_install:

$ sudo easy_install nodeenv

or pip:

$ sudo pip install nodeenv

If you want to work with the latest version of the nodeenv you can install it from the github repository:

$ git clone https://github.com/ekalinin/nodeenv.git
$ ./nodeenv/nodeenv.py --help

Usage

Basic

Install new environment:

$ ./nodeenv.py env
 * Creating: ~/nodeenv/env/src ... done.
 * Retrieve: http://nodejs.org/dist/node-v0.4.5.tar.gz ...
######################################################################## 100,0%
 * Retrieve: http://nodejs.org/dist/node-v0.4.5.tar.gz ... done.
 * Compile: ~/nodeenv/env/src/node-v0.4.5 ...
 ** Running command ./configure --prefix=~/nodeenv/env
 ** Running command make
 ** Running command "make install"
 * Compile: ~/nodeenv/env/src/node-v0.4.5 ... done
 * Writing env/bin/activate ... done.
 * Install node.js package manager ... done.

Activate new environment:

$ . env/bin/activate

(env-0.4.5) $ node -v
v0.4.5

(env-0.4.5) $ npm -v
0.3.18

Deactivate environment:

(env-0.4.4) $ deactivate

Advanced

Get available node.js versions:

$ ./nodeenv.py --list
0.0.1   0.0.2   0.0.3   0.0.4   0.0.5   0.0.6   0.1.0
0.1.2   0.1.3   0.1.4   0.1.5   0.1.6   0.1.7   0.1.8
0.1.10  0.1.11  0.1.12  0.1.13  0.1.14  0.1.15  0.1.16
0.1.18  0.1.19  0.1.20  0.1.21  0.1.22  0.1.23  0.1.24
0.1.26  0.1.27  0.1.28  0.1.29  0.1.30  0.1.31  0.1.32
0.1.90  0.1.91  0.1.92  0.1.93  0.1.94  0.1.95  0.1.96
0.1.98  0.1.99  0.1.100 0.1.101 0.1.102 0.1.103 0.1.104
0.2.1   0.2.2   0.2.3   0.2.4   0.2.5   0.2.6   0.3.0
0.3.2   0.3.3   0.3.4   0.3.5   0.3.6   0.3.7   0.3.8
0.4.1   0.4.2   0.4.3   0.4.4   0.4.5

Install node.js "0.4.3" without ssl support with 4 parallel commands for compilation:

$ ./nodeenv.py --without-ssl --node "0.4.3" --jobs 4 env-4.3
 * Creating: ~/nodeenv/env-4.3/src ... done.
 * Retrieve: http://nodejs.org/dist/node-v0.4.3.tar.gz ...
######################################################################## 100,0%
 * Retrieve: http://nodejs.org/dist/node-v0.4.3.tar.gz ... done.
 * Compile: ~/nodeenv/env-4.3/src/node-v0.4.3 ...
 ** Running command ./configure --prefix=~/nodeenv/env
 ** Running command make
 ** Running command "make install"
 * Compile: ~/nodeenv/env-4.3/src/node-v0.4.3 ... done.
 * Writing env-4.3/bin/activate ... done.
 * Install node.js package manager ... done.

Saving into the file versions of all installed packages:

$ . env-4.3/bin/activate
(env-0.4.3)$ npm install express
(env-0.4.3)$ npm install jade
(env-0.4.3)$ freeze ../prod-requirements.txt

Create environment copy from requirements file:

$ ./nodeenv.py -r ../prod-requirements.txt --jobs 4 env-copy
 * Creating: ~/nodeenv/env-copy/src ... done.
 * Retrieve: http://nodejs.org/dist/node-v0.4.6.tar.gz ...
######################################################################## 100,0%
 * Retrieve: http://nodejs.org/dist/node-v0.4.6.tar.gz ... done.
 * Compile: ~/nodeenv/env-copy/src/node-v0.4.6 ...
 ** Running command ./configure --prefix=~/nodeenv/env-copy
 ** Running command make
 ** Running command "make install"
 * Compile: ~/nodeenv/env-copy/src/node-v0.4.6 ... done
 * Writing env-copy/bin/activate ... done.
 * Install node.js package manager ... done.
 * Install node.js packages ...
 ** Running command ". env-copy/bin/activ...tivate connect@1.3.0"
 ** Running command ". env-copy/bin/activ...tivate express@2.2.2"
 ** Running command ". env-copy/bin/activ...activate jade@0.10.4"
 ** Running command ". env-copy/bin/activ... activate mime@1.2.1"
 ** Running command ". env-copy/bin/activ... activate npm@0.3.17"
 ** Running command ". env-copy/bin/activ...pm activate qs@0.0.7"
 * Install node.js packages ... done.

Requirements files are plain text files that contain a list of packages to be installed. These text files allow you to create repeatable installations. Requirements file example:

$ cat ../prod-requirements.txt
connect@1.3.0
express@2.2.2
jade@0.10.4
mime@1.2.1
npm@0.3.17
qs@0.0.7

Alternatives

There are several alternatives that create isolated environments:

  • nave - Virtual Environments for Node. Nave stores all environments in one directory ~/.nave. Thus it is not possible to create different environments for one version of node.js. Can not pass additional arguments into configure (for example --without-ssl)
  • nvm - Node Version Manager. It is necessarily to do nvm sync for caching available node.js version. Can not pass additional arguments into configure (for example --without-ssl)
  • virtualenv Virtual Python Environment builder. For python only.
Something went wrong with that request. Please try again.