Próbuję uruchomić inną wersję NodeJS, nvm
ale pojawia się ten błąd:
$ nvm use v4.2.4
nvm is not compatible with the npm config "prefix" option:
currently set to "/Users/z/.npm-global"
Run `npm config delete prefix` or `nvm use --delete-prefix v4.2.4` to unset it.
Mam prefiks ustawiony celowo, aby tego uniknąć sudo npm
(patrz https://docs.npmjs.com/getting-started/fixing-npm-permissions ).
Czy jest jakiś sposób, którego mogę użyć nvm
bez utraty prefiksu dla globalnie zainstalowanych pakietów?
Odpowiedzi:
Usuń i zresetuj prefiks
Uwaga: Zmień numer wersji na wskazany w komunikacie o błędzie.
Kredyty dla @gabfiocchi na Github - „Musisz zastąpić prefiks NVM”
źródło
npm config set prefix $NVM_DIR/versions/node/<node-version-directory>
Miałem ten sam problem i wykonanie
npm config delete prefix
nie pomogło mi.Ale to zrobiło:
Po zainstalowaniu nvm przy użyciu brew, utwórz
~/.nvm
katalog:$ mkdir ~/.nvm
i dodaj następujące wiersze do
~/.bash_profile
:(Sprawdź, czy nie masz innego powiązanego polecenia NVM w dowolny
~/.bashrc
lub~/.profile
lub~/.bash_profile
)Otwórz nowy terminal i tym razem nie powinien on drukować żadnych komunikatów ostrzegawczych.
Sprawdź, czy nvm działa, wykonując
nvm --version
polecenie.Następnie zainstaluj / ponownie zainstaluj NodeJS za pomocą
nvm install node && nvm alias default node
.Więcej informacji
Zainstalowałem
nvm
za pomocą,homebrew
a następnie otrzymałem to powiadomienie:Zignorowanie go doprowadziło mnie do tego komunikatu o błędzie:
Postępowałem zgodnie z wcześniejszym przewodnikiem (od
homebrew/nvm
), a potem okazało się, że muszę ponownie zainstalować NodeJS. Więc zrobiłem:i zostało to naprawione.
Aktualizacja: użycie naparu do zainstalowania NVM powoduje powolne uruchamianie terminalu. Możesz wykonać tę instrukcję, aby ją rozwiązać.
źródło
nvm alias default node
wydawało mi się, że pomogło mi w moim przypadkunvm
nie jest obsługiwany, gdy jest instalowany przez brew. Proszę go odinstalować i użyć właściwej metody, skryptu curl w pliku readme.nvm
. Ta odpowiedź nie działała dla mnie.rm -rf node_modules
i uruchomiłemnpm install
ponownie, ponieważ w katalogach pojawiły się już problemy z uprawnieniami.brew remove node -f
, który usuwa wszystkie zainstalowane wersje. Zrób to najpierw, a następnie postępuj zgodnie z instrukcjami w powyższym linku, a następnie usuń node_modules. Powinieneś dostać czystą instalację! Myślę, że wtedy musisz także zainstalować npm, który po prostu postępowałem zgodnie z instrukcjami z artykułu nodejs.org, który pojawił się, gdy go szukałem.npm install npm@latest -g
było to polecenie po zainstalowaniu węzła.Może to być konflikt z lokalną instalacją węzła (jeśli w przeszłości był on instalowany w inny sposób niż NVM). Powinieneś usunąć to wystąpienie węzła:
sudo rm -rf /usr/local/lib/node_modules
sudo rm /usr/local/bin/node
cd /usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm
Po nie można zainstalować NVM
źródło
Ten błąd może wystąpić, gdy ścieżka do folderu instalacyjnego NVM ma dowiązanie symboliczne .
Wyjaśnienie
Domyślna ścieżka instalacji NVM to:
$HOME/.nvm
ale folder domowy może być dowiązaniem symbolicznym do innego napędu, na przykład w moim przypadku.Przykład: mój folder domowy to dowiązanie symboliczne do innego napędu:
/home/myuser -> /bigdrive/myuser
To powoduje problem z prefiksem.
Rozwiązanie
W skrypcie uruchamiania (.bashrc lub .zshrc lub innym) zmień folder NVM na ścieżkę bezpośrednią.
Np
NVM_DIR="/bigdrive/myuser/.nvm"
. :.bashrc
źródło
Natknąłem się na to podczas używania węzła zainstalowanego przez
nvm
, znvm
zainstalowanym przez homebrew. Rozwiązałem go, uruchamiającbrew uninstall nvm
,rm -rf $NVM_DIR
a następnie ponownie instalując nvm przy użyciu oficjalnego skryptu instalacyjnego i ponownie instalując potrzebną wersję węzła.Uwaga: Mam również
$NVM_DIR
zamontowane i dowiązanie symboliczne. Przeniosłem go z powrotem do mojego homediru.źródło
Może to stanowić problem, jeśli gdzieś jest zainstalowany katalog domowy, ponieważ nvm nie działa poprawnie z dowiązaniami symbolicznymi. Ponieważ nie obchodzi mnie, gdzie znajduje się mój $ NVM_DIR, uruchamiam to i wszystko działa dobrze:
źródło
Miałem ten sam problem i za każdym razem było to naprawdę denerwujące. Uruchomiłem polecenie do terminala i zostało to naprawione
Dla tych spróbuj usunąć nvm z naparu
to może nie wystarczyć, aby zaparzyć odinstalowanie NVM
jeśli widzisz, że przedrostek npm to wciąż / usr / local, uruchom to polecenie
źródło
Mam ten sam komunikat o błędzie, ale inne rozwiązanie. Automatycznie wygenerowana ścieżka podczas zawijania (install.sh) nie jest zgodna. Sprawdź to za pomocą:
W moim przypadku:
/var/www//.nvm
. Pokaż w automatycznie wygenerowanym pliku bash i zmień go i zamień: (~ / .bash_profile, ~ / .zshrc, ~ / .profile lub ~ / .bashrc)zastąpić
z (np.)
źródło
Śledziłem odpowiedź https://stackoverflow.com/a/47861348/2391795, ale nie wyszło to dobrze.
Po uruchomieniu zalecanych poleceń mój nvm już nie działał, uruchomienie
nvm use
wyświetli odpowiednią używaną wersję węzła, ale uruchomienienode -v
wyświetli inną. Zmiana wersji węzła nie była już możliwa.Całkowicie odinstalowałem i ponownie zainstalowałem NVM, aby to naprawić. Śledziłem https://github.com/creationix/nvm#manual-uninstall uruchamiając
Następnie edytowałem my,
.zshrc
aby usunąć linie związane z nvm, które w moim przypadku byłyNastępnie uruchomiłem nową powłokę (aby nvm nie został załadowany do tej nowej powłoki) i uruchomiłem https://github.com/creationix/nvm#install-script
Co dodało nvm wiersze, które wcześniej usunąłem z mojego
.zshrc
.Potem mogłem używać nvm tak jak kiedyś. Myślę, że to dziwny przypadek, gdy coś poszło nie tak i zmusiło mnie do ponownej instalacji wszystkiego, nie wygląda na to, że większość ludzi przechodzi przez to z powodu tego problemu.
źródło
Pozwól mi opisać moją sytuację.
Najpierw sprawdź bieżącą konfigurację
Następnie znalazłem konfigurację błędu w danych wyjściowych:
Więc
C:\\Program Files\\nodejs
usunąłem plik /mnt/c/Users/paul/.npmrc.źródło
Rozwiązałem ten problem, gdy był wyświetlany na terminalach VSCode i JetBrains, ale nie w natywnym terminalu za pomocą następujących poleceń:
To da ci rozstrzygniętą ścieżkę na końcu:
Stamtąd usunięcie plików i ponowne uruchomienie kodu VS powinno rozwiązać problem:
naprawić link: https://github.com/nvm-sh/nvm/issues/1690#issuecomment-392014774
źródło
Szukałem rozwiązania problemu z prefiksem NVM i znalazłem to pytanie (zanim znalazłem rozwiązanie). Oto moje „okno dialogowe” powłoki. Mam nadzieję, że może się przydać komuś. Byłem w stanie ustawić prefiks za pomocą tego postu: https://github.com/npm/npm/issues/6592
Kiedy próbowałem
npm config delete prefix
lubnvm use --delete-prefix
przed użyciemnpm --prefix="" set prefix ""
, otrzymałem tylko: npm ERR! źle kod 0Zauważ, że będziesz musiał powtórzyć tę samą procedurę dla każdej wersji węzła, po instalacji prefiks jest ponownie ustawiony na (w moim przypadku) / usr / local.
źródło
Miałem ten problem po przeniesieniu mojego folderu domowego na nowy dysk w systemie Linux. Zostało to naprawione przez usunięcie folderu .nvm i ponowną instalację nvm
źródło
Właśnie rozwiązałem problem. Symlinkowałem
$HOME/.nvm
do$DEV_ZONE/env/node/nvm
katalogu. Miałem ten sam problem. ZastąpiłemNVM_DIR
w$HOME/.zshrc
następujący sposóbBTW, zainstaluj NVM za pomocą
curl
lubwget
nie używaj poleceńbrew
. Aby uzyskać więcej, sprawdź komentarz w tym numerze na Github: 855 # Issuecomment-146115434źródło
nvm
z instalacjąnpm
?Mam tylko pomysł. Użyj dowiązania symbolicznego, aby rozwiązać błąd, a nadal możesz używać prefiksu dla globalnie zainstalowanych pakietów.
ln -s [your prefix path] [path in the '~/.nvm']
wtedy będziesz miał symboliczny folder w~/.nvm
folderze, ale w rzeczywistości twoje pakiety globalne są nadal instalowane w [twojej ścieżce prefiksu]. Następnie błąd nie pojawi się ponownie i będzie można używaćnvm use **
normalnie. ps: działa na mniemac
. pps: nie zapomnij ustawić$PATH
nabin
folder npm, aby korzystać z globalnie zainstalowanych pakietów.źródło
Uwaga:
aby usunąć, usunąć lub odinstalować NVM - po prostu usuń
$NVM_DIR
folder (zwykle~/.nvm
), możesz spróbować:
rm -rf ~/.nvm
źródło