- Notifications
You must be signed in to change notification settings - Fork220
Virtual environment for Node.js & integrator with virtualenv
License
ekalinin/nodeenv
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
nodeenv (node.js virtual environment) is a tool to createisolated 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 the new environment can be integrated with the environment which was builtbyvirtualenv (python).
If you use nodeenv feel free to add your project on wiki:Who-Uses-Nodeenv.
You can install nodeenv globally witheasy_install:
$ sudo easy_install nodeenv
or withpip:
$ sudo pip install nodeenv
or on Debian usingdpkg:
$ ln -s debian-upstream debian$ dpkg-buildpackage -uc -us -b$ sudo dpkg -i $(ls -1rt ../nodeenv_*.deb | tail -n1)
If you're usingvirtualenv then you can install nodeenv viapip/easy_install inside any virtual environment built with virtualenv:
$ virtualenv env$ . env/bin/activate(env) $ pip install nodeenv(env) $ nodeenv --version0.6.5
If you want to work with the latest version of the nodeenv you caninstall it from the githubrepository:
$ git clone https://github.com/ekalinin/nodeenv.git$ ./nodeenv/nodeenv.py --help
or withpip:
$ pip install -e git+https://github.com/ekalinin/nodeenv.git#egg=nodeenv
- python (2.6+, 3.5+, or pypy)
- make
- tail
- libssl-dev
Create new environment:
$ nodeenv env
Activate new environment:
$ . env/bin/activate
Check versions of main packages:
(env) $ node -vv0.10.26(env) $ npm -v1.4.3
Deactivate environment:
(env) $ deactivate_node
Get available node.js versions:
$ nodeenv --list0.0.1 0.0.2 0.0.3 0.0.4 0.0.5 0.0.6 0.1.00.1.2 0.1.3 0.1.4 0.1.5 0.1.6 0.1.7 0.1.80.1.10 0.1.11 0.1.12 0.1.13 0.1.14 0.1.15 0.1.160.1.18 0.1.19 0.1.20 0.1.21 0.1.22 0.1.23 0.1.240.1.26 0.1.27 0.1.28 0.1.29 0.1.30 0.1.31 0.1.320.1.90 0.1.91 0.1.92 0.1.93 0.1.94 0.1.95 0.1.960.1.98 0.1.99 0.1.100 0.1.101 0.1.102 0.1.103 0.1.1040.2.1 0.2.2 0.2.3 0.2.4 0.2.5 0.2.6 0.3.00.3.2 0.3.3 0.3.4 0.3.5 0.3.6 0.3.7 0.3.80.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 commandsfor compilation and npm.js "0.3.17":
$ nodeenv --without-ssl --node=0.4.3 --npm=0.3.17 --with-npm --jobs=4 env-4.3
Install node.js from the source:
$ nodeenv --node=0.10.25 --source env-0.10.25
Install node.js from a mirror:
$ nodeenv --node=10.19.0 --mirror=https://npm.taobao.org/mirrors/node
It's much faster to install from the prebuilt package than Install & compilenode.js from source:
$ time nodeenv --node=0.10.25 --prebuilt env-0.10.25-prebuilt + Install node.js (0.10.25) ... done.real 0m6.928suser 0m0.408ssys 0m1.144s$ time nodeenv --node=0.10.25 --source env-0.10.25-src + Install node.js (0.10.25) ... done.real 4m12.602suser 6m34.112ssys 0m30.524s
Create a new environment with the system-wide node.js:
$ nodeenv --node=system
Saving the versions of all installed packages to a file:
$ . 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
If you want to list locally installed packages use-l option:
(env-4.3)$ freeze -l ../prod-requirements.txt
Create an environment from a requirements file:
$ nodeenv --requirements=../prod-requirements.txt --jobs=4 env-copy
Requirements files are plain text files that contain a list of packagesto be installed. These text files allow you to create repeatable installations.Requirements file example:
$ cat ../prod-requirements.txtconnect@1.3.0express@2.2.2jade@0.10.4mime@1.2.1npm@0.3.17qs@0.0.7
If you already have the python virtualenv tool, and want to use nodeenv andvirtualenv in conjunction, then you should create (or activate) the pythonvirtual environment:
# in case of using virtualenv_wrapper$ mkvirtualenv my_env# in case of using virtualenv$ . my_env/bin/activate
and add a node virtual environment to this existing new_venv:
$ nodeenv -p
If you need to set the path to make used to build node:
$ nodeenv -m /usr/local/bin/gmake ENV
That's all. Now, all your node.js modules will be installed into your virtualenvironment:
$ workon my_env$ npm install -g coffee-script$ command -v coffee/home/monty/virtualenvs/my_env/bin/coffee
Creating a virtual environment with a custom prompt:
$ nodeenv --node=12.18.2 --prompt="(myenv)" nodeenv
If environment's directory already exists then you can use--force option:
$ nodeenv --requirements=requirements.txt --jobs=4 --force env
If you already have an environment and want to update packages from requirementsfile you can use--update option:
$ . env-4.3/bin/activate(env-4.3)$ nodeenv --requirements=requirements.txt --update env-4.3
If you want to call node from environment without activation then you shoulduse shim script:
$ ./env-4.3/bin/shim --versionv0.4.3
You can use the INI-style file~/.nodeenvrc to set default values for many options,the keys in that file are the long command-line option names.
These are the available options and their defaults:
[nodeenv]node = 'latest'npm = 'latest'with_npm = Falsejobs = '2'without_ssl = Falsedebug = Falseprofile = Falsemake = 'make'prebuilt = Trueignore_ssl_certs = Falsemirror = None
There are several alternatives that create isolated environments:
- nave - Virtual Environments for Node.Nave stores all environments in one directory
~/.nave. Can createper node version environments using nave use envname versionname.Can not pass additional arguments into configure (for example --without-ssl)Can't run on windows because it relies on bash. - nvm - Node VersionManager. It is necessarily to do nvm sync for caching available node.jsversion.Can not pass additional arguments into configure (for example --without-ssl)
- virtualenv - Virtual Python Environment builder. For python only.
BSD /LICENSE
About
Virtual environment for Node.js & integrator with virtualenv
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.