Wrap your js with a rubber

Stefan "hr" Berder // // code [en]

Ce n’est pas un secret que le système de paquet de node.js est terriblement mauvais. Je sais que l’administration de paquet est difficile mais cela ne signifie pas que l’ont doit se contenter d’une solution médiocre (j’ai aussi mes problèmes avec le système de paquet de python). J’ai le sentiment que de nombreuses nouvelles technologies ont créé une sorte d’arrogance qui pousse à travailler sur des problèmes qui ont trouvé différentes solutions depuis longtemps.

Those who cannot remember the past are condemned to repeat it.

—George Santayana

Quoi qu’il en soit, il est difficile de ne pas utiliser node.js lorsque l’on travaille dans le domaine du web. Du coup, à chaque fois que je dois utiliser une librairie node.js, je l’isole dans un virtalenv python avec l’aide du génial nodeenv. Assez râlé, voyons comment créer un conteneur propre pour node.js en quelques étapes.

Tout d’abord installer virtualenvwrapper les dépendances de nodeenv:

$ sudo apt-get install virtualenvwrapper
$ sudo apt-get install make curl grep coreutils tar libssl-dev

On crée ensuite un conteneur et installe nodeenv dedans:

$ mkvirtualenv --system-site-packages nodeenv
New python executable in nodeenv/bin/python
[...]
(nodeenv)$ pip install nodeenv
Downloading/unpacking nodeenv
[...]
Successfully installed nodeenv
Cleaning up...

Dans le virtualenv courant, on crée une installation locale de node.js/npm (cette phase peut prendre du temps car node.js et npm sont téléchargé et compilé):

(nodeenv)$ nodeenv -p
 * Install node.js (0.10.32) ... done.
 * Appending data to /home/hr/.virtualenvs/nodeenv/bin/activate

Et voilà! Rien de bien difficile, il suffit maintenant d’activer le venv pour utiliser node.js:

$ workon nodeenv
(nodeenv)$ node -v
v0.10.32
(nodeenv)$ npm -v
1.4.28

C’est plus que suffisant pour mon utilisation mais vous devriez jeter un oeil à la documentation de nodeenv, il y a beaucoup d’options disponibles.

// // //

comments powered by Disqus