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 installbrew bağlantısını kaldırbrew link
brew install - githubbrew bağlantısını kaldır - githubbrew 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 etmelisinizve sonra yeni yüklenen 14 sürümüne link ver
brew unlink nodebrew 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

İlgili makaleler