Ich habe die Seite mit den Wiki-Modulen durchsucht, kann jedoch nichts Ähnliches wie virtualenv (Python) oder rvm finden.
Trennt hier jemand node.js in seiner eigenen Umgebung? Ich mag es wirklich nicht, npm systemweit zu installieren.
Ich habe die Seite mit den Wiki-Modulen durchsucht, kann jedoch nichts Ähnliches wie virtualenv (Python) oder rvm finden.
Trennt hier jemand node.js in seiner eigenen Umgebung? Ich mag es wirklich nicht, npm systemweit zu installieren.
Antworten:
Wenn systemweite npm-Pakete Ihr Hauptproblem sind, sollten Sie den sehr coolen Befehl 'bundle' mit npm verwenden. Dies ist näher am Einfrieren von Edelsteinen oder an der Verwendung von Bündlern in Schienen als an RVM.
Es ist super einfach. Erstellen Sie einfach eine package.json-Datei:
{ "name": "yourapp", "version": "0.0.1", "dependencies": {"jade": "0.4.1"}}
und dann ausführen:
npm bundle vendor
oder wenn Ihre npm-Version> = 1.0 ist, führen Sie Folgendes aus:
npm install
in das Herstellerverzeichnis einfrieren. und dann benutze:
require.paths.unshift('./vendor');
npm install
ersetzt , npm bundle
wie von NPM 1.0, glaube ich.
nodeenv - virtuelle Umgebung für node.js (Analog virtualenv )
node.js
Umgebung zusammen mit der Python-Umgebung aktiviert wird. Siehe nodeenv -p
.
Es gibt auch einige Node-Versionsverwaltungssysteme, die helfen können.
Schauen Sie sich Nave https://github.com/isaacs/nave an
NVM kann auch unter https://github.com/creationix/nvm verwendet werden
Es gibt auch eine mit dem Namen n https://github.com/visionmedia/n
nvm
oder suchen n
und automatisch wechseln möchten, schauen Sie unter avn
: github.com/wbyoung/avn
Die Antwort von bxjx ist konzeptionell korrekt. Beachten Sie jedoch, dass der Befehl bundle kein Verzeichnis mehr belegt. Es immer fällt Pakete in den node_modules
Ordner, so dass npm weiß , wo sie später finden (und kann doppelt Installation Abhängigkeiten vermeiden).
Jede Lösung wird wahrscheinlich die Installation von npm und nave "systemweit" beinhalten (dh in Ihrem PATH
, was sich ~
irgendwo befinden könnte), aber dann nur Ihre spezifischen Abhängigkeiten in der virtuellen Umgebung.
Ich antwortete gründlicher auf das Github-Problem .
tl; dr: Der Anwendungsfall ist gültig und hilfreich, und obwohl er meistens vorhanden ist, ist er nicht so gut bedient, wie er sein könnte. Wir sollten sicherstellen, dass wir es uns überlegen und es richtig machen.
Sie müssen Abhängigkeiten nicht immer global installieren. Normalerweise wird dies empfohlen, da Sie dann die Befehle verwenden können, die ein npm-Paket bereitstellt. Wenn Sie es jedoch lokal (im node_modules
) Verzeichnis installieren , können Sie diese Befehle auch verwenden. Sie werden nur im node_modules/.bin/
Verzeichnis angezeigt, sodass Sie Folgendes eingeben müssen node_modules/.bin/<command>
: Das ist ärgerlich, aber Sie können diesen Pfad natürlich zu Ihrer PATH
Umgebungsvariablen hinzufügen :
export PATH=node_modules/.bin:$PATH
Dann können Sie einfach tippen <command>
und es funktioniert!
Es gibt tatsächlich einen npm-Befehl, der einen absoluten Pfad zum .bin
Verzeichnis zurückgibt :
$ npm bin
/path/to/node_modules/.bin
Dieser Befehl funktioniert auch, wenn Sie sich in einem Unterverzeichnis des Projekts befinden. Er gibt das erste node_modules/.bin
Verzeichnis zurück, das in den übergeordneten Verzeichnissen gefunden wird.
Sie können diesen Alias in Ihr Verzeichnis .bashrc
einfügen, um das .bin/
Verzeichnis automatisch zu Ihrem Verzeichnis hinzuzufügen PATH
:
alias nodebin='export PATH=$(npm bin):$PATH'
Wenn Sie sich also in einem Verzeichnis eines Projekts befinden, das ein node_modules/
Verzeichnis im Stammverzeichnis hat, können nodebin
Sie Folgendes eingeben und dann alle Befehle verwenden, die sich im .bin/
Verzeichnis befinden!
sieht da gibt es einen besseren weg:
Installieren von Node.js und npm in einem Python Virtualenv
Jetzt kann ich Node-Tools verwenden, ohne die globale Bin-Umgebung zu beeinträchtigen
Wenn Sie es einfach mögen, empfehle ich visionmedia's n , könnte nicht einfacher sein!
npm install
.