Ho cercato nella pagina dei moduli wiki, ma non trovo nulla di simile a virtualenv (python) o rvm.
Qualcuno qui separa node.js nella propria env? Non mi piace installare npm a livello di sistema.
Ho cercato nella pagina dei moduli wiki, ma non trovo nulla di simile a virtualenv (python) o rvm.
Qualcuno qui separa node.js nella propria env? Non mi piace installare npm a livello di sistema.
Risposte:
Se il tuo problema principale è avere pacchetti npm a livello di sistema, allora potresti prendere in considerazione l'uso del comando 'bundle' molto interessante con npm. Questo è più vicino al congelamento delle gemme o all'utilizzo del bundler nelle rotaie, piuttosto che a rvm.
È semplicissimo. Basta creare un file package.json:
{ "name": "yourapp", "version": "0.0.1", "dependencies": {"jade": "0.4.1"}}
e poi esegui:
npm bundle vendor
o se la tua versione di npm è> = 1.0 run:
npm install
per congelare nella directory del fornitore. e quindi usa:
require.paths.unshift('./vendor');
npm install
sostituito npm bundle
da NPM 1.0, credo.
nodeenv - ambiente virtuale per node.js (Analog virtualenv )
node.js
ambiente venga attivato insieme all'ambiente Python. Vedere nodeenv -p
.
Ci sono anche alcuni sistemi di gestione delle versioni dei Nodi che possono aiutare.
Dai un'occhiata a Nave https://github.com/isaacs/nave
NVM potrebbe anche essere utilizzato https://github.com/creationix/nvm
Ce n'è anche uno chiamato n https://github.com/visionmedia/n
nvm
o n
vuoi cambiare automaticamente quando cambi directory, guarda avn
: github.com/wbyoung/avn
La risposta di bxjx è concettualmente accurata. Tuttavia, si noti che il comando bundle non accetta più una directory. E ' sempre cade pacchetti nella node_modules
cartella, in modo che NPM sa dove trovare in un secondo momento (e può evitare dipendenze doppio-installazione).
Qualsiasi soluzione implicherà probabilmente l'installazione di npm e nave "a livello di sistema" (ovvero, nel tuo PATH
, che potrebbe trovarsi ~
da qualche parte), ma solo l'installazione di dipendenze specifiche nell'ambiente virtuale.
Ho risposto più approfonditamente al problema github .
tl; dr: il caso d'uso è valido e utile, e mentre è principalmente lì, non è ben servito come potrebbe essere. Dovremmo assicurarci di pensarci bene e farlo bene.
Non è sempre necessario installare dipendenze a livello globale. Di solito è consigliato perché poi puoi usare i comandi forniti da un pacchetto npm, ma se lo installi localmente (nella node_modules
directory), puoi anche usare questi comandi, finiranno solo nella node_modules/.bin/
directory, quindi dovrai digitare node_modules/.bin/<command>
, che è fastidioso, ma puoi ovviamente aggiungere questo percorso alla tua PATH
variabile di ambiente:
export PATH=node_modules/.bin:$PATH
Quindi puoi semplicemente digitare <command>
e funziona!
In realtà esiste un comando npm che restituisce un percorso assoluto alla .bin
directory:
$ npm bin
/path/to/node_modules/.bin
Questo comando funziona anche quando ci si trova in una sottodirectory del progetto, restituirà la prima node_modules/.bin
directory che trova nelle sue directory principali.
Puoi aggiungere questo alias nel tuo .bashrc
per aggiungere automaticamente la .bin/
directory al tuo PATH
:
alias nodebin='export PATH=$(npm bin):$PATH'
Quindi quando ti trovi in una directory di un progetto che ha una node_modules/
directory nella radice, puoi digitare nodebin
e quindi puoi usare tutti i comandi che si trovano nella .bin/
directory!
guarda c'è un modo migliore:
Installazione di Node.js e npm in un Python Virtualenv
ora posso usare gli strumenti del nodo senza rovinare l'ambiente bin globale
Se ti piace semplice, consiglio vivamente visionmedia's n , non potrebbe essere più facile!
npm install
per questo.