Wie wird Brew, node.js, io.js, nvm, npm unter OS X empfohlen?

175

Ich versuche so viel wie möglich Homebrew zu verwenden. Was ist die empfohlene Methode, um Folgendes unter OS X zu installieren?

und unterstützt hoffentlich die Entwicklung für:

Oh ho
quelle
9
Es sollte beachtet werden, dass Sie zwar gebeten haben, Homebrew zu verwenden. Die Verwendung von Homebrew zur Installation von nvm wird nicht empfohlen. Von github.com/creationix/nvm "Die Installation von Homebrew wird nicht unterstützt. Wenn Sie Probleme mit Homebrew-installiertem nvm haben, brauen Sie es bitte deinstallieren und installieren Sie es gemäß den folgenden Anweisungen, bevor Sie ein Problem einreichen . "
Eric

Antworten:

267
  1. Verwenden der homebrewInstallation nvm:

    brew update
    brew install nvm
    source $(brew --prefix nvm)/nvm.sh

    In den letzten Befehl an die .profile, .bashrcoder .zshrcDatei , um sie nicht wieder laufen auf jedem Endgerät Start. So fügen Sie es beispielsweise dem .profileLauf hinzu:

    echo "source $(brew --prefix nvm)/nvm.sh" >> ~/.profile

    Wenn Sie Probleme bei der Installation nvmmit haben brew, können Sie es manuell installieren (siehe hier ).

  2. Mit nvminstall nodeoder iojs(Sie können jede gewünschte Version installieren):

    nvm install 0.10
    # or
    nvm install iojs-1.2.0
  3. npmWird mit node(oder iojs) ausgeliefert, ist es nach der Installation node(oder iojs) verfügbar . Möglicherweise möchten Sie es auf die neueste Version aktualisieren:

    $ npm install -g npm@latest

    UPD Vorherige Version war npm update -g npm. Vielen Dank an @Metallica für den richtigen Weg (siehe Kommentar unten).

  4. Verwenden der npmInstallation ionic:

    npm install -g ionic
  5. Was ist mit ngCordova: Sie können es mit npmoder installieren bower. Ich weiß nicht, welche Variante besser zu Ihnen passt. Dies hängt vom Paketmanager ab, den Sie für die Client-Seite verwenden möchten. Also werde ich sie beide beschreiben:

    1. Verwenden vonnpm : Gehen Sie zu Ihrem Projektordner und installieren ng-cordovaSie ihn dort:

      npm install --save ng-cordova
    2. Verwenden vonbower : Laube installieren:

       npm install -g bower

      Gehen Sie dann zu Ihrem Projektordner und installieren ngCordovaSie ihn dort:

       bower install --save ngCordova

PS

  1. Einige Befehle erfordern möglicherweise Superuser-Berechtigungen
  2. Kurze Variante von npm install some_moduleistnpm i some_module
Alexpods
quelle
10
Wenn Sie npm selbst aktualisieren, verwenden Sie NICHT den Befehl npm update. Die Upstream-empfohlene Methode zum Aktualisieren von npm ist: npm install -g npm@latest(von brew info nodeund hier )
Javad Sadeqzadeh
10
Aus der aktuellen Brew-NVM-Installation: "Bitte beachten Sie, dass Upstream uns gebeten hat, die explizite Verwaltung von NVM über Homebrew nicht von ihnen zu unterstützen ..." -> Daher ist die richtige Antwort wahrscheinlich, Brew nicht für nvm / node.js / io zu verwenden .js.
Daniel
7
Ich habe die Fehlermeldung "nvm ist nicht kompatibel mit der Option" Präfix "der npm-Konfiguration" erhalten. Laut dieser Website ( github.com/creationix/nvm/issues/855#issue-109279804 ) ist NVM nicht mit Homebrew kompatibel. Ich habe "nvm deinstalliert" und nvm über den Befehl CURL installiert und jetzt ist die Fehlermeldung verschwunden.
YeeHaw1234
4
Ich habe nvm eine Weile über Brew verwendet, aber auch die Meldung "Upstream ... explizit ... nicht unterstützt" erhalten. In NVM-Dokumenten heißt es ausdrücklich: "Die Installation von Homebrew wird nicht unterstützt. Wenn Sie Probleme mit der von Homebrew installierten NVM haben, deinstallieren Sie sie bitte und installieren Sie sie gemäß den folgenden Anweisungen, bevor Sie ein Problem einreichen." Dies sollte also wahrscheinlich nicht mehr die akzeptierte Antwort sein. Ich habe gerade angefangen, n zu verwenden, was funktioniert.
whatsthatitspat
3
Aktuelle NVM-Version (v0.33.2) unterstützt keine Homebrew-Installation: Siehe: github.com/creationix/nvm/tree/v0.33.2#installation
Andrea Carraro
45

Update 2019: Verwenden Sie NVM, um den Knoten zu installieren, nicht Homebrew

In den meisten Antworten wird empfohlen, nvm mit Homebrew zu installieren

TU das nicht

Bei Github Page für nvm heißt es deutlich:

Die Installation von Homebrew wird nicht unterstützt. Wenn Sie Probleme mit von Homebrew installiertem NVM haben, deinstallieren Sie es bitte und installieren Sie es gemäß den folgenden Anweisungen, bevor Sie ein Problem einreichen.

Verwenden Sie stattdessen die folgende Methode

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

Das Skript klont das nvm-Repository in ~ / .nvm und fügt die Quellzeile Ihrem Profil hinzu (~ / .bash_profile, ~ / .zshrc, ~ / .profile oder ~ / .bashrc).

Verwenden Sie dann nvm, um den Knoten zu installieren. Um beispielsweise die neueste LTS-Version zu installieren, gehen Sie wie folgt vor:

nvm install v8.11.1

Sauber und problemlos. Dies wird auch als Standardknotenversion markiert, sodass Sie alle Einstellungen vornehmen sollten

Abhijit Mazumder
quelle
2
Ich denke, Sie könnten auch nvm install --ltsdie neueste LTS
Skube
1
Vielen Dank, dass Sie dies angesprochen haben. Ich bin mit NVM und Homebrew in ein schreckliches Kaninchenloch gegangen und gerade aufgetaucht ...
cssidy
Gute Antwort! Nach vielem Lesen (Knoteninstallationen können ein Minenfeld sein) habe ich einfach den deinstallierten Knoten gebraut, alles gelöscht und nvm verwendet, um den Knoten auf Mojave 10.14.4 zu installieren: stackoverflow.com/q/55735701/123033
Dave Everitt
13

Ich verwende n (Node Version Management)

Sie können es auf zwei Arten installieren

brew install n

oder

npm install -g n

Sie können zwischen verschiedenen Versionen von Node und Io wechseln. Hier ist ein Beispiel aus meiner aktuellen Umgebung, wenn ich n ohne Parameter aufrufe:

$ n

  io/3.3.1
  node/0.12.7
  node/4.0.0
  node/5.0.0
ο node/5.10.1 
Serge Seletskyy
quelle
2
Sie können eine dritte Möglichkeit zur Installation hinzufügen, die schmerzlos ist und bei Bedarf ein praktisches Deinstallationsprogramm hinterlässt - github.com/mklement0/n-install Diese Methode wird in den n Dokumenten unter github.com/tj/n
whatsthatitspat
1
Es sollte auch erwähnt werden, dass nvm die bessere Wahl ist, wenn Sie planen, verschiedene Knotenversionen für verschiedene Projekte gleichzeitig auszuführen (wie in 2 verschiedenen Terminalfenstern), da in jeder Sitzung nur die Pfade zum Knoten gewechselt werden.
Nilloc
10

Ich bin super spät dran, aber die anderen Antworten haben mir nicht gefallen

Homebrew installieren

Für Gebräu Lauf

"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Knoten & npm installieren

Sie sollten NICHT verwenden brew, um Node und npm zu installieren .

Ich habe ein paar Plätze vorgeschlagen gesehen , dass Sie sollten Homebrew verwenden Knoten zu installieren (wie alexpods beantworten und in diesem Team - Treehouse Blog - Post ) , aber die Installation dieser Art und Weise Sie anfälliger sind in Probleme zu laufen , wie npmund brewsind beide Paketmanager und Sie sollten Lassen Sie einen Paketmanager einen anderen Paketmanager verwalten. Dies führt zu Problemen wie diesem Fehler. Offizielle npm- Probleme Fehler: Verweigern des Löschens: / usr / local / bin / npm oder dieses npm-Modul kann unter OSX nicht deinstalliert werden

Weitere Informationen zu diesem Thema finden Sie in DanHerberts Beitrag Fixing npm On Mac OS X für Homebrew-Benutzer , in dem er weiter sagt

Wenn Sie die Homebrew-Installation von npm verwenden, müssen Sie bei der Installation globaler Pakete sudo verwenden. Da eine der Kernideen von Homebrew darin besteht, dass Apps installiert werden können, ohne ihnen Root-Zugriff zu gewähren, ist dies eine schlechte Idee.

Für alles andere

Ich würde npm verwenden; Sie sollten jedoch einfach die Installationsanweisungen für die einzelnen Module befolgen und den Anweisungen auf der Website folgen, da sie sich der Probleme oder Fehler besser bewusst sind als alle anderen

Garrettmac
quelle
Sie schlagen also vor, es einfach von ihrem Download zu installieren?
Shawn Mclean
6

Wenn Sie den Knoten zuvor mit Brew installiert haben, verfügen Sie über eine Reihe zusätzlicher Dateien, die Sie bereinigen sollten, bevor Sie den Knoten "richtig" installieren. Außerdem musste ich meinem Startskript einige Einstellungen hinzufügen, damit alles reibungslos funktioniert.

Ich habe ein Skript geschrieben, um dies zu vereinfachen.

# filename:  install-nvm-npm-node
# author:    Lex Sheehan
# purpose:   To cleanly install NVM, NODE and NPM
# dependencies:  brew

NOW=$(date +%x\ %H:%M:%S)
CR=$'\n'
REV=$(tput rev)
OFF=$(tput sgr0)
BACKUP_DIR=$HOME/backups/nvm-npm-bower-caches/$NOW
MY_NAME=$(basename $0)
NODE_VER_TO_INSTALL=$1
if [ "$NODE_VER_TO_INSTALL" == "" ]; then
    NODE_VER_TO_INSTALL=v0.12.2
fi
if [ "`echo "$NODE_VER_TO_INSTALL" | cut -c1-1`" != "v" ]; then
    echo """$CR""Usage:   $ $MY_NAME <NODE_VERSION_TO_INSALL>"
    echo "Example: $ $MY_NAME v0.12.1"
    echo "Example: $ $MY_NAME $CR"
    exit 1
fi
echo """$CR""First, run:  $ brew update"
echo "Likely, you'll need to do what it suggests."
echo "Likely, you'll need to run: $ brew update$CR"
echo "To install latest node version, run the following command to get the latest version:  $ nvm ls-remote"
echo "... and pass the version number you want as the only param to $MY_NAME. $CR"
echo "Are you ready to install the latest version of nvm and npm and node version $NODE_VER_TO_INSTALL ?$CR"
echo "Press CTL+C to exit --or-- Enter to continue..."
read x

echo """$REV""Uninstalling nvm...$CR$OFF"
# Making backups, but in all likelyhood you'll just reinstall them (and won't need these backups)
if [ ! -d "$BACKUP_DIR" ]; then 
    echo "Creating directory to store $HOME/.nvm .npm and .bower cache backups: $BACKUP_DIR"
    mkdir -p $BACKUP_DIR
fi 
set -x
mv $HOME/.nvm   $BACKUP_DIR  2>/dev/null
mv $HOME/.npm   $BACKUP_DIR  2>/dev/null
mv $HOME/.bower $BACKUP_DIR  2>/dev/null
{ set +x; } &>/dev/null

echo "$REV""$CR""Uninstalling node...$CR$OFF"
echo "Enter your password to remove user some node-related /usr/local directories"
set -x
sudo rm -rf /usr/local/lib/node_modules
rm -rf /usr/local/lib/node
rm -rf /usr/local/include/node
rm -rf /usr/local/include/node_modules
rm /usr/local/bin/npm
rm /usr/local/lib/dtrace/node.d
rm -rf $HOME/.node
rm -rf $HOME/.node-gyp
rm /opt/local/bin/node
rm /opt/local/include/node
rm -rf /opt/local/lib/node_modules
rm -rf /usr/local/Cellar/nvm
brew uninstall node 2>/dev/null
{ set +x; } &>/dev/null

echo "$REV""$CR""Installing nvm...$CR$OFF"

echo "++brew install nvm"
brew install nvm 
echo '$(brew --prefix nvm)/nvm.sh'
source $(brew --prefix nvm)/nvm.sh

echo "$REV""$CR""Insert the following line in your startup script (ex: $HOME/.bashrc):$CR$OFF"
echo "export NVM_DIR=\"\$(brew --prefix nvm)\"; [ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\"$CR"
NVM_DIR="$(brew --prefix nvm)"

echo """$CR""Using nvm install node...$CR"
echo "++ nvm install $NODE_VER_TO_INSTALL"
nvm install $NODE_VER_TO_INSTALL
NODE_BINARY_PATH="`find /usr/local/Cellar/nvm -name node -type d|head -n 1`/$NODE_VER_TO_INSTALL/bin"
echo "$REV""$CR""Insert the following line in your startup script (ex: $HOME/.bashrc) and then restart your shell:$CR$OFF"
echo "export PATH=\$PATH:$NODE_BINARY_PATH:$HOME/.node/bin"

echo """$CR""Upgrading npm...$CR"
echo '++ install -g npm@latest'
npm install -g npm@latest
{ set +x; } &>/dev/null
echo "$REV""$CR""Insert following line in your $HOME/.npmrc file:$OFF"
echo """$CR""prefix=$HOME/.node$CR"
echo "Now, all is likley well if you can run the following without errors:  npm install -g grunt-cli$CR"
echo "Other recommended global installs: bower, gulp, yo, node-inspector$CR"

Ich schrieb einen kurzen Artikel hier , dass die Details , warum dies „der richtige Weg“.

Wenn Sie iojs installieren müssen, verwenden Sie dazu nvm wie folgt:

nvm install iojs-v1.7.1

Informationen zum Installieren von Brew finden Sie auf der Homepage .

Siehe alexpods Antwort für den Rest.

l3x
quelle
5
Es ist großartig zu sehen, dass all diese Paketmanager und Versionsmanager wirklich dazu beitragen, benutzerdefinierte geschriebene Skripte, Hacks und Problemumgehungen zu entfernen, damit Techstack xyz funktioniert. genial.
Michael Trouw
Arbeitete für mich, obwohl ich mit npm anfing und beide kaputt braute
Chris F Carroll
5

Sie sollten node.js mit nvm installieren, da Sie auf diese Weise bei der Installation globaler Pakete keine Superuser-Berechtigungen bereitstellen müssen (Sie können einfach "npm install -g packagename" ausführen, ohne "sudo" voranzustellen).

Für andere Dinge ist das Brauen jedoch fantastisch. Ich neige dazu, voreingenommen gegenüber Bower zu sein, wenn ich die Option habe, etwas mit Bower zu installieren.

Rajan Patel
quelle
Die Installation des Knotens mit nvm ist jetzt mein bevorzugter Ansatz. Aus dem offensichtlichen Grund, dass ich mehrere Versionen von Node auf meinem Computer haben kann und auch nicht npm mit sudo ausführen muss. Ich schrieb einen Blog-Beitrag garywoodfine.com/install-nodejs-nvm-osx, in dem erklärt wurde, wie man installiert
Gary Woodfine
4

Ich stimme noa zu - wenn Sie mehrere Versionen von benötigen node, io.jsist das Brauen nicht die geeignete Lösung.

Sie können den Beta-Test- io.jsSupport in NVM unterstützen: https://github.com/creationix/nvm/pull/616

Wenn Sie nur die io.jsVersion wechseln möchten und nicht wechseln, können Sie die Binärdistribution io.jsvon https://iojs.org/dist/v1.0.2/iojs-v1.0.2-darwin-x64.tar.gz installieren . Das schließt ein npmund Sie werden es nicht brauchen, nvmwenn Sie nicht die Version wechseln.

Denken Sie daran, npmnach der Installation zu aktualisieren :sudo npm install -g npm@latest

Sam Mikes
quelle
3

Folgendes mache ich:

curl https://raw.githubusercontent.com/creationix/nvm/v0.20.0/install.sh | bash
cd / && . ~/.nvm/nvm.sh && nvm install 0.10.35
. ~/.nvm/nvm.sh && nvm alias default 0.10.35

Kein Homebrew für diesen.

nvmIn Kürze wird io.js unterstützt, jedoch nicht zum Zeitpunkt der Veröffentlichung: https://github.com/creationix/nvm/issues/590

Installieren Sie dann alles andere pro Projekt mit einem package.jsonund npm install.

paulmelnikow
quelle
0

Für die Installation mit zsh und Homebrew:

brew install nvm

Fügen Sie dann Folgendes zu ~ / .zshrc oder Ihrer gewünschten Shell-Konfigurationsdatei hinzu:

export NVM_DIR="$HOME/.nvm"
. "/usr/local/opt/nvm/nvm.sh"

Installieren Sie dann eine Knotenversion und verwenden Sie sie.

nvm install 7.10.1
nvm use 7.10.1
David Dehghan
quelle