Node.js virtual environment builder
Project description
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.
Also new environment can be integrated with environment which was built by virtualenv (python).
Install
Global installation
You can install nodeenv globally with easy_install:
$ sudo easy_install nodeenv
or pip:
$ sudo pip install nodeenv
Local installation
If you’re using virtualenv then you can install nodeenv via pip/easy_install inside any virtual environment built with virtualenv:
$ virtualenv env $ . env/bin/activate (env) $ pip install nodeenv (env) $ nodeenv --version 0.6.5
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
Dependency
For nodeenv
make
curl
egrep
sort
tail
tar
For node.js
python
libssl-dev
Usage
Basic
Create new environment:
$ nodeenv env
Activate new environment:
$ . env/bin/activate
Chek versions of main packages:
(env) $ node -v v0.4.6 (env) $ npm -v 0.3.18
Deactivate environment:
(env) $ deactivate_node
Advanced
Get available node.js versions:
$ nodeenv --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 0.4.6
Install node.js “0.4.3” without ssl support with 4 parallel commands for compilation and npm.js “0.3.17”:
$ nodeenv --without-ssl --node=0.4.3 --npm=0.3.17 --jobs=4 env-4.3
Create a new environment with the system-wide node.js:
$ nodeenv --node=system
Saving into the file versions of all installed packages:
$ . env-4.3/bin/activate (env-4.3)$ npm install -g express (env-4.3)$ npm install -g jade (env-4.3)$ freeze ../prod-requirements.txt
Create environment copy from requirement file:
$ nodeenv --requirement=../prod-requirements.txt --jobs=4 env-copy
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
If you’re already have python virtualenv tool, and want to use nodeenv and virtualenv in conjunction, then you should create (or activate) python virtual environment:
# in case of using virtualenv_wrapper $ mkvirtualenv my_env # in case of using virtualenv $ . my_env/bin/activate
and add node virtual environment to this existing new_venv:
$ nodeenv -p
That’s all. Now, all your node.js modules will be installed into your virtual environment:
$ workon my_env $ npm install -g coffee-script $ which coffee /home/monty/virtualenvs/my_env/bin/coffee
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.
Nodeenv changelog
Version 0.7.0
Version 0.6.6
Version 0.6.5
Node’s source not loaded if it already exists in FS.
Version 0.6.4
Added python3 compatibility. See # 32
Version 0.6.3
Fixed nodeenv -p. See issue # 31
Version 0.6.2
Version 0.6.1
Used pkg_resources.parse_version to compare versions. See pull # 29
Fixed doubling prompt inside a virtualenv. See issues # 26
Version 0.6.0
Version 0.5.3
Bug fix. Used https, /dist/latest/. See pull # 16
Version 0.5.2
Improved installation logic for release candidate versions. See pull # 10
Version 0.5.1
Improved logic for the option ‘–without-npm’. See issue # 14, pull # 15
Version 0.5.0
The virtual environment’s path is no longer hardcoded into the activation script. See pull # 13
Version 0.4.3
Fixed metavar for --npm
npm install -g used for npm >=1.0, not noly for latest
Version 0.4.2
Added README.ru.rst
Version 0.4.1
Fixed bug in print_node_versions. See pull # 11
Added deps in README
Version 0.4.0
Version 0.3.10
Fixed bug in url detection for node.js download
Version 0.3.9
Version 0.3.8
Added NODE_PATH variable export (for correct module search after installation via npm)
Version 0.3.7
Shows command output when error occurs
Excluded ‘npm’ from freeze list
Fixed bug with ‘not only letter’ names in freeze list
Added global installation for npm >= 1.0 (when install soft from requirement file)
Version 0.3.6
Fixed freeze output command. See request # 5
Diagnostic message fixed. See pull # 4
Version 0.3.5
Added option --npm to install certain npm.js version. Request .
Fixed freeze command for npm >= 1.0.x.
Version 0.3.4
Fixed problem #2 with new npm installation script. Added --no-npm-clean option. The default to the npm 0.x cleanup.
Version 0.3.3
Fixed problem #1 with installation from PyPI via easy_install. Added MANIFEST.in file.
Version 0.3.2
Internal improvements
Logging refactoring
Version 0.3.1
Default environment promt is folder name
Version 0.3.0
Renamed nve to nodeenv
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.