NodeJS en un virtual environment

Soy uno de los que no me gusta que una aplicación web hasta cierto punto comparta librerias de otras, por lo que al querer instalar NodeJS en una servidor en producción, de casualidad me he topado con Nodeenv que esta escrito en python lo que nos permite crear un ambiente virtual para aislar NodeJS y no compartir librerias con otras aplicaciones escritas para NodeJS, incluso para cada ambiente es posible hasta tener versiones antiguas y nuevas de NodeJS.

Para instalarlo de manera global en nuestro servidor, tan solo ejecutaremos lo siguiente, como usuario root:

pip install nodeenv

o si prefieren usar easy_install

easy_install nodeenv

También es posible si cuentan con pip instalado en un entorno virtual para python, instalarlo de manera local, para ello hacemos lo siguiente:

$ cd virtualenv-python
$ source bin/activate
(virtualenv-python) $ install nodeenv

Una vez instalado nodeenv, ya sea de forma local o global en nuestro sistema, procederemos a crear el ambiente virtual para NodeJS:

$ nodeenv venv-nodejs

El comando ejecutado, creara el directorio venv-nodejs-0.10.24 e instalara la versión mas reciente de NodeJS, tardara un poco ya que nodeenv lo que hace es descargar los sources para NodeJS, los compilara y luego los instalara. Para comprobar que se ha instalado correctamente, accedemos al entorno virtual para NodeJS que se ha creado y ejecutamos:

$ cd venv-nodejs
$ source bin/activate
(venv-nodejs)$ node -v
(venv-nodejs)$ v0.10.24

Para salir del entorno virtual lo hacemos de la siguiente manera:

(venv-nodejs)$ deactivate_node

Si queremos instalar una versión en especifica ya se nueva o antigua tan solo tendremos que ejecutar:

$ nodeenv --node=0.9.12 --npm=1.3.21 venv-nodejs0.9

Nuestra entorno virtual se creara con nombre de directorio venv-nodejs0.9 , con la versión de NodeJS 0.9.12 y el Node Packaged Manager en su versión 1.3.21  .

Por ultimo, si queremos listar las versiones disponibles para NodeJS, agregando -l al comando nodeenv podremos listarlas.

Es importante mencionar que luego de que entramos en nuestro virtual environment y al momento de instalar cualquier paquete para NodeJS deberemos hacerlo sin el parametro -g , recuerden la idea es mantener aisladas los paquetes y versiones de NodeJS.