Jak Mogę zmienić wersję npm używając nvm?

Używam NVM do instalacji najnowszych wersji nodeJS do pracy z węzłami. Działa całkowicie dobrze w przypadku instalowania oddzielnych wersji i przełączania się między nimi. Instaluje również najnowszą wersję NPM w każdym lokalnym .../ bin folder wraz z węzłem binarnym. Jednak wydaje się, że nie ma sposobu, aby przełączyć wersję NPM, której używam (a przynajmniej nie mogę tego rozgryźć).

Jedynym rozwiązaniem, jakie przychodzi mi do głowy, jest usunięcie pliku binarnego, który domyślnie (który jest NPM, który został zainstalowany, gdy po raz pierwszy zainstalowany węzeł z NVM), a w jego miejsce umieścić najnowszy npm binarny. Zastanawiam się jednak, czy są jakieś lepsze sposoby, aby to zrobić.

 146
Author: bdesham, 2012-03-18

10 answers

Ponad trzy lata po pierwszym zadaniu tego pytania, wydaje się, że odpowiedź jest teraz o wiele prostsza. Wystarczy zaktualizować wersję zainstalowaną przez nvm, która mieszka w ~/.nvm/versions/node/[your-version]/lib/node_modules/npm.

Właśnie zainstalowałem node 4.2.2, który jest dostarczany z npm 2.14.7, ale chcę użyć npm 3. Więc zrobiłem:

cd ~/.nvm/versions/node/v4.2.2/lib
npm install npm
Spokojnie!

I tak, powinno to działać dla każdego modułu, nie tylko npm, który chcesz być "globalny" dla konkretnej wersji node.


EDIT 1: w najnowszej wersji {[2] } jest inteligentny i instaluje Moduły na powyższej ścieżce zamiast globalnej ścieżki systemu.


EDIT 2, kolejne dwa lata i sześć wersji węzłów później: jak zauważono w nowszej odpowiedzi, istnieje teraz polecenie:

Nvm posiada teraz polecenie aktualizacji npm. To nvm install-latest-npm lub npm install --latest-npm.

Dzięki philraj za wskazanie tego w komentarzu.

 224
Author: lawrence,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-24 16:46:43

Nvm nie obsługuje npm.

Więc jeśli chcesz zainstalować node 0.4.x (od którego zależy wiele pakietów) i używać NPM, nadal można używać npm 1.0.x.

Install node 0.6.x (który pochodzi z npm 1.1.x) i zainstalować nvm z npm:

npm install nvm
. ~/nvm/nvm.sh

Install node 0.4.x z nvm:

nvm install v0.4.12
nvm use v0.4.12

Zainstaluj npm używając install.sh (zwróć uwagę na param -L aby podążać za każdym przekierowaniem):

curl -L https://npmjs.org/install.sh | sh

To wykryje węzeł 0.4.12 i zainstaluje npm 1.0.106 w twoim ~/NVM/v0.4. 12 / lib / node_modules folder i utwórz dowiązanie symboliczne dla nvm

~/nvm/v0.4.12/bin/npm -> ../lib/node_modules/npm/bin/npm-cli.js

Jeśli spróbujesz uruchomić npm, nadal będzie to powodować błąd, ale jeśli wykonasz nvm use v0.4.12 ponownie, powinno działać.

 38
Author: fijiaaron,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-15 22:16:40

Zmiana wersji npm na oss opartym na Linuksie nie jest jeszcze prostym procesem jednego polecenia. Zrobiłem następujące, aby przejść z powrotem do starszej wersji npm. Powinno to działać, aby każda wersja npm działała. Najpierw zainstaluj wersję npm, której chcesz użyć:

sudo npm install -g [email protected]

Usuń łącze sym w /usr / local / bin /

sudo rm /usr/local/bin/npm

Odtworzenie łącza sym przy użyciu żądanej wersji npm, którą zainstalowałeś

sudo ln -s /usr/bin/[email protected] /usr/local/bin/npm
 16
Author: Arun Reddy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-13 01:58:41

Nvm posiada teraz polecenie aktualizacji npm. nvm install-latest-npm LUB npm install --latest-npm.

 15
Author: samlandfried,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-09 16:55:51
npm install [email protected] -g
npm install [email protected] -g
 14
Author: Ocko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-05 20:53:40

Patrząc na www.npmjs.com/install.sh znalazłem sposób na zainstalowanie określonej wersji poprzez ustawienie zmiennej środowiskowej

export npm_install="2.14.14"

Następnie uruchom skrypt pobierania, jak opisano w npmjs.com :

curl -L https://www.npmjs.com/install.sh | sh

Jeśli pominiesz ustawienie zmiennej npm_install, zainstaluje ona wersję oznaczoną jako latest

 8
Author: jim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-07 10:54:42

W systemie windows uruchom terminal jako administrator(w przypadku problemów z uprawnieniami, jak miałem). Następnie użyj określonej wersji węzła (powiedzmy 7.8.0) przez

nvm use 7.8.0

Następnie zaktualizuj swój npm do żądanej konkretnej wersji przez

npm install -g [email protected]
 4
Author: adnan2nd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-12 06:01:17

Jestem na Windowsie i nie mogłem nic z tego zrobić. Ciągle dostaję Błędy o plikach, które przeszkadzają. To jednak zadziałało:

cd %APPDATA%\nvm\v8.10.0           # or whatever version you're using
mv npm npm-old
mv npm.cmd npm-old.cmd
cd node_modules\
mv npm npm-old
cd npm-old\bin
node npm-cli.js i -g npm@latest
I bum, wracam do biznesu.
 3
Author: Ryan Shillington,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-09 13:40:44

Drobne zmiany w powyższych instrukcjach, zadziałały dla mnie. (MacOS Sierra 10.12.6)

npm install -g [email protected]
rm /usr/local/bin/npm
ln -s ~/.npm-packages/bin/npm /usr/local/bin/npm
npm --version
 1
Author: Nick Grealy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-28 05:16:09

A co z npm i -g npm? Próbowałeś też to uruchomić?

 0
Author: Dimitri Reifschneider,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-30 16:32:33