javascript - Belirli bir Node sürümünü brew ile nasıl kurabilirim?
Örneğin 7.9 veya 7.10 kurmak istiyorum ama webpack node-sass bozan hatası nedeniyle Node 8'den kaçınmak istiyorum.
Ben brew search node komutunu çalıştırdığımda, gördüğüm şey şudur:
❯ brew search node leafnode llnode node ✔ node-build > [email [email node@4 node@6 nodebrew nodeenv nodenv caskroom/cask/node-profiler
Eğer özellikle "node"u kastediyorsanız: Caskroom/cask'tan homebrew/core'a taşındı. Tekrar erişmek için şunu çalıştırabilirsiniz: brew tap homebrew/core
Kontrol edilen bir düğüm var (mevcut sürümüm v7.4.0 sonra [email , [email , node@4 ve node@6?
Tam olarak 8'e yükseltemememin sebebi, node-sass'in webpack'te çalışmaması.
Az önce NVM'yi kurdum ve bu çılgın hata günlükünü aldım:
=> nvm kaynak dizesi zaten /Users/leongaban/.zshrc içinde => bash_completion kaynak dizesi /Users/leongaban/.zshrc dosyasına ekleniyor npm ERR! eksik: is-path-cwd@^1.0.0, gereklidir: [email npm ERR! eksik: is-path-in-cwd@^1.0.0, gereklidir: [email npm ERR! eksik: p-map@^1.1.1, gereklidir: [email npm ERR! eksik: pify@^3.0.0, gereklidir: [email npm ERR! eksik: rimraf@^2.2.8, gereklidir: [email npm ERR! eksik: bluebird@^3.1.1, gereklidir: [email npm ERR! eksik: clone@^1.0.2, gereklidir: [email
...
=> You currently have modules installed globally with `npm`. These will no
=> longer be linked to the active version of Node when you install a new node
=> with `nvm`; and they may (depending on how you construct your `$PATH`)
=> override the binaries of modules installed with `nvm`:
Eğer bunu doğru anlıyorsam, bu artık npm ile paketleri global olarak kuramayacağım ve nvm kullanmam mı gerekecek anlamına mı geliyor?
Güncelle
İhracat satırlarını .zshrc bash dosyama ekledim (bash_profile kullanmıyorum)
❯ nvm --version
0.33.2
Cevap #1
Node'un farklı sürümlerini kullanma kararı için iki yol vardır. İkinci yol benim görüşüme göre daha uygun ve pratiktir (ayrıca daha hızlı olabilir).
İlk yol:
Başka bir Node sürümünü (örneğin 14) kullanarak yükleyin:
brew install | brew bağlantısını kaldır | brew link |
|---|---|---|
| brew install - github | brew bağlantısını kaldır - github | brew link - github |
brew install node@14
brew unlink node
brew link node@14
node -v
Not: Örneğin, brew link komutunu --overwrite bayrağı ile kullanabilirsiniz:
brew link --overwrite node@14
PS2 Neden önce unlink sonra tekrar link?
Belgeler:
Homebrew ön ekinden formül için sembolik bağlantıları kaldırın. Bu, bir formülü geçici olarak devre dışı bırakmak için faydalı olabilir:
brew unlink formula && commands && brew link formula
Başka bir deyişle:
Eğer hem node hem de node@14 yüklüyse ve node başka bir sürüm ise (..,15 veya 16), aktif sürümü 14 olarak ayarlamak için:
düğümü unlink etmelisiniz | ve sonra yeni yüklenen 14 sürümüne link ver |
|---|---|
brew unlink node | brew link node@14 |
PS3
Brew genellikle yalnızca yazılım paketlerinin ana sürümlerini destekler, yani belirli alt sürümler yerine node@18 gibi güncellemeler sağlar.
Bu yaklaşım, her küçük sürümü korumadan yalnızca temel kararlı sürümlere odaklanarak paket yönetimini basitleştirir.
Daha hassas sürüm kontrolü için, nvm (İkinci yol) gibi araçlar önerilir; bu araçlar, gerektiğinde belirli küçük veya yama sürümlerini yüklemeye olanak tanır.
İkinci yol:
Node Sürüm Yöneticisi (nvm) yükleyin ve Node sürümünü seçin:
nvm - github nvm - home brew
brew install nvm
mkdir ~/.nvm
export NVM_DIR="$HOME/.nvm"
[ -s "$(brew --prefix)/opt/nvm/nvm.sh" ] && . "$(brew --prefix)/opt/nvm/nvm.sh" # This loads nvm
[ -s "$(brew --prefix)/opt/nvm/etc/bash_completion.d/nvm" ] && . "$(brew --prefix)/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
nvm install 14
nvm use 14
nvm list
Cevap #2
Eğer homebrew/code üzerindeki sürümler doğru şekilde tanımlanmışsa, örneğin brew install [email komutunu da çalıştırabilmelisiniz.
Ayrıca birden fazla sürümü yükleyebilir ve hangisini kullanmak istediğinizi brew switch komutuyla seçebilirsiniz.
--
Her neyse, Homebrew aracılığıyla kurulabilen nvm kullanmanızı tavsiye ederim. Ancak, brew üzerindeki sürüm hatalı ve bunu düzeltmeyi planlamıyorlar.
Cevap #3
Node'un en son sürümünü kurmak ve daha önce kurulan sürümle bağlantıyı kesmek
brew install node@14
brew unlink node
brew link --overwrite node@14
Facing an issue with the brew link run below command and try again
sudo chown -R $(whoami) $(brew --prefix)/*
echo 'export PATH="/usr/local/opt/node@14/bin:$PATH"' >> ~/.bash_profile
node -v
