J'ai consulté la page des modules du wiki, mais je ne trouve rien de similaire à virtualenv (python) ou à RVM.
Quelqu'un ici sépare-t-il node.js dans son propre env? Je n'aime vraiment pas installer npm à l'échelle du système.
Si votre principal problème est de disposer de paquets npm à l'échelle du système, envisagez peut-être d'utiliser la très cool commande 'bundle' avec npm. Ceci est plus proche de la congélation de gemmes ou de l'utilisation d'un bundle dans Rails, plutôt que de la RVM.
C'est super facile. Il suffit de créer un fichier package.json:
{ "name": "yourapp", "version": "0.0.1", "dependencies": {"jade": "0.4.1"}}
puis lancez:
npm bundle vendor
ou si votre version de npm est> = 1.0, lancez:
npm install
se figer dans le répertoire du vendeur. et ensuite utiliser:
require.paths.unshift('./vendor');
nodeenv - environnement virtuel pour node.js (Analog virtualenv )
Il existe également des Node systèmes de gestion de versions qui peuvent vous aider.
Départ Nave https://github.com/isaacs/nave
NVM pourrait également être utilisé https://github.com/creationix/nvm
Il y en a aussi une appelée n https://github.com/visionmedia/n
la réponse de bxjx est conceptuellement exacte. Toutefois, veuillez noter que la commande bundle ne prend plus de répertoire. Il toujours laisse tomber les paquets dans le node_modules
, pour que npm sache où les trouver plus tard (et évite les dépendances lors de la double installation).
Toute solution impliquera probablement l’installation de npm et de nave "à l’échelle du système" (c’est-à-dire dans votre PATH
, ce qui pourrait se trouver dans ~
quelque part), mais n’installez que vos dépendances spécifiques dans l’environnement virtuel.
J'ai répondu de manière plus approfondie sur le problème github .
tl; dr: Le cas d’utilisation est valide et utile, et même s’il est généralement là, il n’est pas aussi bien servi qu’il pourrait l'être. Nous devons nous assurer de bien réfléchir et de bien faire les choses.
Vous n'avez pas toujours besoin d'installer des dépendances globalement. Cela est généralement recommandé car vous pouvez utiliser les commandes fournies par les packages npm, mais si vous l'installez localement (dans le fichier node_modules
), vous pouvez aussi utiliser ces commandes, elles ne finissent que dans le node_modules/.bin/
répertoire, vous devrez donc taper node_modules/.bin/<command>
, ce qui est agaçant, mais vous pouvez bien sûr ajouter ce chemin à votre variable d’environnement PATH
:
export PATH=node_modules/.bin:$PATH
Ensuite, vous pouvez simplement taper <command>
et il fonctionne!
Il existe en fait une commande npm qui renvoie un chemin absolu à la .bin
répertoire:
$ npm bin
/path/to/node_modules/.bin
Cette commande fonctionne également lorsque vous vous trouvez dans un sous-répertoire du projet. Elle retournera le premier node_modules/.bin
répertoire qu’il trouve dans ses répertoires parents.
Vous pouvez ajouter cet alias dans votre .bashrc
pour ajouter automatiquement le .bin/
répertoire vers votre PATH
:
alias nodebin='export PATH=$(npm bin):$PATH'
Donc, quand vous êtes dans un répertoire d'un projet qui a un node_modules/
dans la racine, vous pouvez taper nodebin
puis vous pouvez utiliser toutes les commandes présentes dans le .bin/
répertoire!
regarde il y a une meilleure façon:
Installation de Node.js et de npm dans un Python Virtualenv
maintenant je peux utiliser les outils de nœuds sans salir l'environnement global bin
Si vous aimez la simplicité, je vous recommande vivement le logiciel Visionmedia n , ne pourrait être plus simple!