J'ai cherché dans la page des modules wiki, mais je ne trouve rien de similaire à virtualenv (python) ou rvm.
Quelqu'un ici sépare node.js dans son propre env? Je n'aime vraiment pas installer npm à l'échelle du système.
J'ai cherché dans la page des modules wiki, mais je ne trouve rien de similaire à virtualenv (python) ou rvm.
Quelqu'un ici sépare node.js dans son propre env? Je n'aime vraiment pas installer npm à l'échelle du système.
Réponses:
Si avoir des packages npm à l'échelle du système est votre principal problème, envisagez peut-être d'utiliser la commande très cool 'bundle' avec npm. C'est plus proche de geler des gemmes ou d'utiliser un bundler dans des rails, plutôt que rvm.
C'est super facile. Créez simplement un fichier package.json:
{ "name": "yourapp", "version": "0.0.1", "dependencies": {"jade": "0.4.1"}}
puis exécutez:
npm bundle vendor
ou si votre version npm est> = 1.0, exécutez:
npm install
pour se figer dans le répertoire du fournisseur. puis utilisez:
require.paths.unshift('./vendor');
npm install
remplacé à npm bundle
partir de NPM 1.0, je crois.
nodeenv - environnement virtuel pour node.js (Analog virtualenv )
node.js
environnement soit activé avec l'environnement Python. Voir nodeenv -p
.
Il existe également des systèmes de gestion de version de Node qui peuvent vous aider.
Découvrez Nave https://github.com/isaacs/nave
NVM pourrait également être utilisé https://github.com/creationix/nvm
Il y en a aussi un appelé n https://github.com/visionmedia/n
nvm
ou n
et que vous voulez une commutation automatique lorsque vous changez de répertoire, regardez avn
: github.com/wbyoung/avn
La réponse de bxjx est conceptuellement exacte. Cependant, veuillez noter que la commande bundle ne prend plus de répertoire. Il dépose toujours les packages dans le node_modules
dossier, afin que npm sache où les trouver plus tard (et peut éviter la double installation des dépendances).
Toute solution impliquera probablement l'installation de npm et nave "à l'échelle du système" (c'est-à-dire dans votre PATH
, qui pourrait être ~
quelque part), mais ensuite seulement d'installer vos dépendances spécifiques dans l'environnement virtuel.
J'ai répondu plus en détail sur le problème de github .
tl; dr: Le cas d'utilisation est valide et utile, et bien qu'il soit principalement là, il n'est pas aussi bien servi qu'il pourrait l'être. Nous devons nous assurer d'y réfléchir et de le faire correctement.
Vous n'avez pas toujours besoin d'installer les dépendances globalement. Habituellement, c'est recommandé car vous pouvez utiliser les commandes fournies par un paquet npm, mais si vous l'installez localement (dans le node_modules
) répertoire, vous pouvez également utiliser ces commandes, elles ne se retrouvent que dans le node_modules/.bin/
répertoire, vous devrez donc taper node_modules/.bin/<command>
, ce qui est ennuyeux, mais vous pouvez bien sûr ajouter ce chemin à votre PATH
variable d'environnement:
export PATH=node_modules/.bin:$PATH
Ensuite, vous pouvez simplement taper <command>
et cela fonctionne!
Il existe en fait une commande npm qui renvoie un chemin absolu vers le .bin
répertoire:
$ npm bin
/path/to/node_modules/.bin
Cette commande fonctionne également lorsque vous êtes 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 à votre PATH
:
alias nodebin='export PATH=$(npm bin):$PATH'
Ainsi, lorsque vous êtes dans un répertoire d'un projet qui a un node_modules/
répertoire à la racine, vous pouvez taper nodebin
et ensuite vous pouvez utiliser toutes les commandes qui se trouvent dans le .bin/
répertoire!
regarde il y a une meilleure façon:
Installation de Node.js et npm dans un Python Virtualenv
maintenant je peux utiliser les outils de nœuds sans gâcher l'environnement global du bac
Si vous aimez la simplicité, je recommande vraiment n de visionmedia , ne pourrait pas être plus facile!
npm install
pour cela.