Apa cara yang disarankan untuk menginstal brew, node.js, io.js, nvm, npm pada OS X?

175

Saya mencoba menggunakan homebrew sebanyak mungkin. Apa cara yang disarankan untuk menginstal berikut ini di OS X?

dan semoga mendukung pengembangan untuk:

ohho
sumber
9
Perlu dicatat bahwa meskipun Anda diminta untuk menggunakan homebrew. Menggunakan homebrew untuk menginstal nvm tidak disarankan Dari github.com/creationix/nvm "Instalasi homebrew tidak didukung. Jika Anda memiliki masalah dengan nvm yang diinstal oleh homebrew, silakan hapus instalannya, dan instal menggunakan petunjuk di bawah ini, sebelum mengajukan masalah . "
Eric

Jawaban:

267
  1. Menggunakan homebrewinstall nvm:

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

    Tambahkan perintah terakhir ke .profile, .bashrcatau .zshrcfile untuk tidak menjalankannya lagi di setiap awal terminal. Jadi misalnya untuk menambahkannya ke proses .profile:

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

    Jika Anda memiliki masalah dengan pemasangan nvmmenggunakan brewAnda dapat menginstalnya secara manual (lihat di sini )

  2. Menggunakan nvminstal nodeatau iojs(Anda dapat menginstal versi apa pun yang Anda inginkan):

    nvm install 0.10
    # or
    nvm install iojs-1.2.0
  3. npmdikirim dengan node(atau iojs), sehingga akan tersedia setelah menginstal node(atau iojs). Anda mungkin ingin memutakhirkannya ke versi terbaru:

    $ npm install -g npm@latest

    Versi sebelumnya UPD sebelumnya npm update -g npm. Terima kasih kepada @Metallica untuk menunjuk ke cara yang benar (lihat komentar di bawah).

  4. Menggunakan npminstall ionic:

    npm install -g ionic
  5. Bagaimana dengan ngCordova: Anda dapat menginstalnya menggunakan npmatau bower. Saya tidak tahu varian apa yang lebih cocok untuk Anda, itu tergantung pada manajer paket yang ingin Anda gunakan untuk sisi klien. Jadi saya akan menjelaskan keduanya:

    1. Menggunakannpm : Buka folder proyek Anda dan instal ng-cordovadi dalamnya:

      npm install --save ng-cordova
    2. Menggunakanbower : Instal bower:

       npm install -g bower

      Dan kemudian pergi ke folder proyek Anda dan instal ngCordovadi dalamnya:

       bower install --save ngCordova

PS

  1. Beberapa perintah mungkin memerlukan hak superuser
  2. Varian pendek npm install some_moduleadalahnpm i some_module
alexpods
sumber
10
Jika Anda memperbarui npm sendiri, JANGAN gunakan perintah pembaruan npm. Cara yang disarankan oleh hulu untuk memperbarui npm adalah: npm install -g npm@latest(dari brew info node, dan di sini )
Javad Sadeqzadeh
10
Dari instal pembuatan bir nvm saat ini: "Harap dicatat bahwa upstream telah meminta kami untuk mengelola nvm secara eksplisit melalui Homebrew tidak didukung oleh mereka ..." -> Jadi, mungkin jawaban yang tepat adalah tidak menggunakan bir untuk nvm / node.js / io .js.
s.Daniel
7
Saya menerima pesan kesalahan "nvm tidak kompatibel dengan opsi npm config" prefix "". menurut situs ini ( github.com/creationix/nvm/issues/855#issue-109279804 ), NVM tidak kompatibel dengan Homebrew. Saya "menyeduh uninstall nvm" dan menginstal nvm melalui perintah CURL dan sekarang pesan kesalahannya hilang.
YeeHaw1234
4
Saya menggunakan nvm melalui minuman untuk sementara waktu tetapi mendapat pesan "upstream ... eksplisit ... tidak didukung" juga. NVM docs secara eksplisit mengatakan "Penginstalan homebrew tidak didukung. Jika Anda memiliki masalah dengan nvm yang diinstal pada homebrew, silakan buat uninstall, dan instal menggunakan instruksi di bawah ini, sebelum mengajukan masalah." Jadi ini mungkin seharusnya bukan jawaban yang diterima lagi. Saya baru saja mulai menggunakan n yang berfungsi.
whatsthatitspat
3
Versi NVM saat ini (v0.33.2) TIDAK mendukung instalasi homebrew: Lihat: github.com/creationix/nvm/tree/v0.33.2#instalasi
Andrea Carraro
45

Pembaruan 2019: Gunakan NVM untuk menginstal node, bukan Homebrew

Di sebagian besar jawaban, cara yang disarankan untuk menginstal nvm adalah dengan menggunakan Homebrew

Jangan lakukan itu

Di Github Page for nvm secara jelas dipanggil:

Instalasi homebrew tidak didukung. Jika Anda memiliki masalah dengan nvm yang diinstal di rumah, silakan buat uninstall, dan instal menggunakan instruksi di bawah ini, sebelum mengajukan masalah.

Gunakan metode berikut sebagai gantinya

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

Script mengkloning repositori nvm ke ~ / .nvm dan menambahkan baris sumber ke profil Anda (~ / .bash_profile, ~ / .zshrc, ~ / .profile, atau ~ / .bashrc).

Dan kemudian gunakan nvm untuk menginstal node. Misalnya untuk menginstal versi LTS terbaru lakukan:

nvm install v8.11.1

Bersih dan bebas gangguan. Ini akan menandai ini sebagai versi simpul default Anda juga sehingga Anda harus siap

Abhijit Mazumder
sumber
2
Saya pikir Anda juga bisa nvm install --ltsmendapatkan LTS terbaru
skube
1
Terima kasih telah mengangkat ini, saya pergi ke lubang kelinci yang mengerikan dengan nvm dan homebrew dan baru saja muncul ...
cssidy
Jawaban yang bagus! Setelah banyak membaca (instalasi node dapat menjadi ladang ranjau), saya baru saja membuat node yang dihapus, membersihkan semuanya dan menggunakan nvm untuk menginstal node pada Mojave 10.14.4: stackoverflow.com/q/55735701/123033
Dave Everitt
13

Saya menggunakan n (manajemen versi Node)

Anda dapat menginstalnya dengan dua cara

brew install n

atau

npm install -g n

Anda dapat beralih antara versi node dan io yang berbeda. Berikut adalah contoh dari env saya saat ini ketika saya menelepon n tanpa params:

$ n

  io/3.3.1
  node/0.12.7
  node/4.0.0
  node/5.0.0
ο node/5.10.1 
Serge Seletskyy
sumber
2
Anda dapat menambahkan cara ketiga untuk menginstal yang tidak menyakitkan dan meninggalkan utilitas penghapusan yang berguna jika Anda memerlukannya - github.com/mklement0/n-install Metode ini disarankan dalam dokumen di github.com/tj/n
whatsthatitspat
1
Juga harus disebutkan bahwa jika Anda berencana untuk menjalankan versi node yang berbeda untuk proyek yang berbeda secara bersamaan (seperti pada 2 terminal windows yang berbeda) nvm adalah pilihan yang lebih baik, karena ia hanya mengganti jalur ke node di setiap sesi.
Nilloc
10

Saya sangat terlambat dalam hal ini, tetapi saya tidak menyukai jawaban yang lain

Menginstal Homebrew

Untuk brew run

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

Menginstal simpul & npm

Anda TIDAK HARUS gunakan brewuntuk menginstal node dan npm .

Saya telah melihat beberapa tempat menyarankan bahwa Anda harus menggunakan Homebrew untuk menginstal Node (seperti alexpods menjawab dan dalam hal ini Tim Treehouse blog Posting ) tapi menginstal cara ini Anda lebih rentan terhadap mengalami masalah seperti npmdan brewkeduanya manajer paket dan Anda harus memiliki manajer paket mengelola lain manajer paket lead ini untuk masalah, seperti bug ini resmi NPM masalah Kesalahan: Menolak untuk menghapus: / usr / local / bin / NPM atau ini tidak Bisa uninstall NPM modul pada OSX

Anda dapat membaca lebih lanjut tentang topik di pos DanHerbert Memperbaiki npm Di Mac OS X untuk Pengguna Homebrew , di mana ia melanjutkan dengan mengatakan

Juga, menggunakan instalasi Homebrew dari npm akan mengharuskan Anda menggunakan sudo saat menginstal paket global. Karena salah satu ide inti di balik Homebrew adalah aplikasi dapat diinstal tanpa memberi mereka akses root, ini adalah ide yang buruk.

Untuk yang lainnya

Saya akan menggunakan npm; tetapi Anda harus mengikuti instruksi instal untuk setiap modul dengan mengikuti arahan di situs web tersebut karena mereka akan lebih mengetahui masalah atau bug yang mereka miliki daripada orang lain.

garrettmac
sumber
Jadi Anda sarankan hanya menginstalnya dari unduhan mereka?
Shawn Mclean
6

Jika sebelumnya Anda telah menginstal node menggunakan brew, maka Anda akan memiliki banyak file tambahan yang harus Anda bersihkan sebelum menginstal node "dengan cara yang benar". Plus, saya harus menambahkan beberapa pengaturan ke skrip startup saya untuk membuat semuanya berjalan lancar.

Saya menulis naskah untuk mempermudah ini.

# 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"

Saya menulis artikel pendek di sini yang menjelaskan mengapa ini "jalan yang benar".

Jika Anda perlu menginstal iojs, lakukan dengan menggunakan nvm seperti ini:

nvm install iojs-v1.7.1

Untuk menginstal brew, cukup lihat beranda .

Lihat jawaban alexpods untuk yang lainnya.

l3x
sumber
5
Luar biasa melihat bahwa semua manajer paket dan manajer versi ini benar-benar membantu menghapus skrip, hack, dan solusi tertulis yang dibuat khusus untuk membuat techstack xyz berfungsi. luar biasa.
Michael Trouw
Bekerja untuk saya meskipun saya mulai dengan npm dan menyeduh keduanya rusak
Chris F Carroll
5

Anda harus menginstal node.js dengan nvm, karena dengan cara itu Anda tidak harus memberikan hak superuser ketika menginstal paket global (Anda cukup menjalankan "npm install -g nama paket" tanpa menambahkan 'sudo').

Namun, bir sangat baik untuk hal-hal lain. Saya cenderung bias terhadap Bower setiap kali saya memiliki opsi untuk menginstal sesuatu dengan Bower.

Rajan Patel
sumber
Menginstal simpul menggunakan nvm sekarang merupakan pendekatan yang saya sukai. Untuk alasan yang jelas untuk dapat memiliki beberapa versi node pada mesin saya dan juga saya tidak harus menjalankan npm dengan sudo. Saya menulis posting blog garywoodfine.com/install-nodejs-nvm-osx menjelaskan cara menginstal
Gary Woodfine
4

Saya setuju dengan noa - jika Anda perlu memiliki beberapa versi node, io.jsmaka minuman bukanlah solusi yang tepat.

Anda dapat membantu io.jsdukungan uji beta di nvm: https://github.com/creationix/nvm/pull/616

Jika Anda hanya ingin io.jsdan tidak berpindah versi, maka Anda dapat menginstal distribusi biner io.jsdari https://iojs.org/dist/v1.0.2/iojs-v1.0.2-darwin-x64.tar.gz ; itu termasuk npmdan Anda tidak perlu nvmjika Anda tidak berpindah versi.

Ingatlah untuk memperbarui npmsetelah menginstal:sudo npm install -g npm@latest

Sam Mikes
sumber
3

Inilah yang saya lakukan:

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

Tidak ada Homebrew untuk yang ini.

nvmsegera akan mendukung io.js, tetapi tidak pada saat posting: https://github.com/creationix/nvm/issues/590

Kemudian instal yang lainnya, per proyek, dengan a package.jsondan npm install.

paulmelnikow
sumber
0

Untuk menginstal dengan zsh dan Homebrew:

brew install nvm

Kemudian Tambahkan berikut ini ke ~ / .zshrc atau file konfigurasi shell yang Anda inginkan:

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

Kemudian instal versi node dan gunakan.

nvm install 7.10.1
nvm use 7.10.1
David Dehghan
sumber