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 installsostituito npm bundleda NPM 1.0, credo.
nodeenv - ambiente virtuale per node.js (Analog virtualenv )
node.jsambiente 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
nvmo nvuoi 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_modulescartella, 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_modulesdirectory), 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 PATHvariabile 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 .bindirectory:
$ 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/.bindirectory che trova nelle sue directory principali.
Puoi aggiungere questo alias nel tuo .bashrcper 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 nodebine 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 installper questo.