Как полностью удалить Node.js и переустановить с самого начала (Mac OS X)

1292

Моя версия узла всегда v0.6.1-pre, даже после того, как я установил brew node и NVM установил v0.6.19.

Моя версия узла:

node -v
v0.6.1-pre

NVM говорит следующее (после того, как я впервые установил версию узла в одном терминале bash):

nvm ls
v0.6.19
current:    v0.6.19

Но когда я перезапускаю bash, вот что я вижу:

nvm ls
v0.6.19
current:    v0.6.1-pre
default -> 0.6.19 (-> v0.6.19)

Так где же этот фантомный узел версии 0.6.1-pre и как от него избавиться? Я пытаюсь установить библиотеки через NPM, чтобы я мог работать над проектом.

Я пытался использовать BREW для обновления до NVM, используя brew updateи brew install node. Я попытался удалить каталог "node" в моем, /usr/local/includeа также "node" и "node_modules" в моем /usr/local/lib. Я попытался удалить npm и переустановить его, следуя этим инструкциям.

Все это потому, что я пытался обновить старую версию узла, чтобы установить библиотеку "zipstream". Теперь в моем каталоге пользователей есть папки, и версия узла STILL не устарела, хотя NVM говорит, что использует 0.6.19.

В идеале я хотел бы удалить nodejs, npm и nvm и просто переустановить все это с нуля в моей системе.

Доминик Танкреди
источник
/ usr / bin / node - это еще один ...
Аарон Бленкуш,
1
это может помочь тем, кто установил узел через файл pkg. superuser.com/questions/36567/…
karthikeayan
Mac 10.13.5 имеет / Users / myusername / node_modules, следует ли мне также удалить эту папку? Я искал в этой теме, но никто не сталкивался с этой проблемой, кажется
vikramvi
@Pacerier даже после следования инструкциям в gist, все еще узел и npm существуют в Mac OS 10.13.5
vikramvi

Ответы:

1699

Судя по всему, там была /Users/myusername/localпапка, содержащая includeс nodeи libс nodeи node_modules. Как и почему это было создано вместо того, чтобы в моей /usr/localпапке, я не знаю.

Удаление этих локальных ссылок исправило фантом v0.6.1-pre. Если у кого-то есть объяснение, я выберу это как правильный ответ.

РЕДАКТИРОВАТЬ:

Возможно, вам также потребуется выполнить дополнительные инструкции:

sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}

что эквивалентно (так же, как выше) ...

sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node* /usr/local/lib/dtrace/node.d ~/.npm ~/.node-gyp 

или (так же, как и выше) сломан ...

Чтобы полностью удалить узел + npm, нужно сделать следующее:

  1. перейдите в / usr / local / lib и удалите любой узел и node_modules
  2. перейдите в / usr / local / include и удалите любой каталог node и node_modules
  3. если вы установили с узлом установки brew , запустите узел удаления brew в своем терминале
  4. проверить ваш домашний каталог для любого локального или Lib или включать в себя папку и удалить любой узел или node_modules оттуда
  5. перейдите в / usr / local / bin и удалите любой исполняемый файл узла

Вам также может понадобиться:

sudo rm -rf /opt/local/bin/node /opt/local/include/node /opt/local/lib/node_modules
sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node.1 /usr/local/lib/dtrace/node.d

Кроме того, NVM изменяет переменную PATH в $HOME/.bashrc, которая должна быть возвращена вручную .

Затем загрузите nvm и следуйте инструкциям по установке узла. Я полагаю, что последние версии узла поставляются с npm , но вы также можете переустановить его.

Доминик Танкреди
источник
83
Я тоже должен был rm -rf /Users/[homedir]/.npm.
brokenindexfinger
17
Также необходимо удалить/Users/[homedir]/.nvm
n0pe
42
Я также побежал, brew doctorа затем brew pruneубрал кучу сломанных символических ссылок для NPM.
Крис Джейкоб
54
Я собрал сценарий, который я сейчас испытал в бою. Спасибо @DominicTancredi, это прекрасно работает! gist.github.com/brock/5b1b70590e1171c4ab54
Брок,
13
Я также должен был добавить: sudo rm -rf ~/.node-gyp. Я добавил его с MacPorts, прежде чем перейти на варку.
JESii
519

Для пользователей Brew OSX :

Удалять:

brew uninstall node; 
# or `brew uninstall --force node` which removes all versions
brew cleanup;
rm -f /usr/local/bin/npm /usr/local/lib/dtrace/node.d;
rm -rf ~/.npm;

Установить:

brew install node;
which node # => /usr/local/bin/node
export NODE_PATH='/usr/local/lib/node_modules' # <--- add this ~/.bashrc

Вы можете запустить brew info nodeдля получения более подробной информации относительно установки вашего узла.


рассмотреть возможность использования NVM вместо варки

NVM (менеджер версий узлов) - это портативное решение для управления несколькими версиями узлов

https://github.com/nvm-sh/nvm

> nvm uninstall v4.1.0
> nvm install v8.1.2
> nvm use v8.1.2
> nvm list
         v4.2.0
         v5.8.0
        v6.11.0
->       v8.1.2
         system

Вы можете использовать это с AVN для автоматического переключения версий при переходе между разными проектами с разными зависимостями узлов.

lfender6445
источник
2
Как настроить env vars так, чтобы узел и npm были доступны после такой установки?
Максим Павлов
13
Вам может потребоваться запустить brew с --forceфлагом, чтобы убедиться, что все версии узла удалены: $ brew uninstall --force node
magikMaker
-bash: /usr/local/bin/npm: No such file or directoryчто я могу сделать сейчас?
ValRob
5
> «рассмотреть возможность использования NVM вместо варки»; По иронии судьбы вы можете установить NVM вместе с brew !; Отличный совет, спасибо.
HankCa
2
Использование NVM помогло.
coderpc
186

Я знаю, что это сообщение немного устарело, но я просто хотел поделиться командами, которые работали для меня в Терминале при удалении Node.js.

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do  sudo rm /usr/local/${f}; done

sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*

ОБНОВИТЬ: 23 SEP 2016


Если вы боитесь выполнять эти команды ...

Спасибо jguixза this quick tutorial.

Сначала создайте промежуточный файл:

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom >> ~/filelist.txt

Просмотрите файл вручную (находится в вашей Homeпапке)

 ~/filelist.txt

Затем удалите файлы:

cat ~/filelist.txt | while read f; do sudo rm /usr/local/${f}; done

sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*

Для 10.10.5 и выше

Спасибо Lenar Hoyt

Gist Комментарий Источник: gistcomment-1572198

Оригинальный Гист: TonyMtz/d75101d9bdf764c890ef

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom | while read f; do sudo rm /usr/local/${f}; done

sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
DaveyJake
источник
16
Вау ... это ужасно. По крайней мере, первый «rm» не является «rm -rf», который, если в выводе sbom есть пустая строка, удалит все / usr / local. Перед тем, как делать что-то столь сложное, внимательно изучите вывод sbom и откуда все эти dir-файлы и убедитесь, что вы точно знаете, что вы удаляете.
Дон Хэтч
16
Я должен добавить ... если у вас здоровый инстинкт самосохранения, вам будет крайне сложно набрать или скопировать и вставить эту вторую команду, которая вообще начинается с "sudo rm -rf /". Одно чихание, или кошка прыгает на клавиатуре, и вы уничтожили свою файловую систему.
Дон Хэтч
2
Это org.nodejs.node.pkg.bomвместо org.nodejs.pkg.bom.
Ленар Хойт
1
@DonHatch скопируйте строку без первой буквы, чтобы она начиналась с, udo..а затем добавлялась sперед запуском.
youurayy
1
Команда lsbom выводит относительные пути, поэтому скрипт пытался удалить пути, которые выглядели так /usr/local/./node/yada. Для удаления ./префикса я использовал фильтр среза: lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom | cut -c 3- | while read f; do sudo rm /usr/local/${f}; done
тимискодирование
142

На Mavericks я устанавливаю его с узла pkg (с сайта nodejs) и удаляю его, чтобы переустановить с помощью brew. Я запускаю только 4 команды в терминале:

  1. sudo rm -rf /usr/local/lib/node_modules/npm/
  2. brew uninstall node
  3. brew doctor
  4. brew cleanup --prune-prefix

Если все еще существует узел установки, повторите шаг 2. После того, как все в порядке, я устанавливаю с помощью brew install node

Педро Полония
источник
50
1 работал, но 2 не работает. Я получаю "нет таких бочонков: usr / local / Cellar / node"
PositiveGuy
Да, это лучшее, если у вас работают Mavericks
Dicer
1
Я пытался, но снова получал ту же ошибку Ошибка: brew linkшаг не завершился успешно
Чандни
Спасибо, отлично, за исключением того, что я должен был добавить --force для варки удалить
Medhi
1
К вашему сведению: На момент написания статьи -->brew prune Error: Calling 'brew prune' is disabled! Use 'brew cleanup --prune-prefix' instead.
Майк С.
33
  1. Первый:

    lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do  sudo rm /usr/local/${f}; done
    
    sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
  2. Напомним, что лучший способ (я обнаружил) полного удаления node + npm - это сделать следующее:

    перейти /usr/local/libи удалить любой узел и node_modules

    cd /usr/local/lib
    
    sudo rm -rf node*
  3. перейти /usr/local/includeи удалить любой каталог node и node_modules

    cd /usr/local/include
    
    sudo rm -rf node*
  4. если вы установили с помощью brew install node, то запустите brew uninstall nodeв своем терминале

    brew uninstall node
  5. проверьте домашний каталог на наличие папок «local», «lib» или «include» и удалите оттуда любые «node» или «node_modules».

    перейдите в / usr / local / bin и удалите любой исполняемый файл узла

    cd /usr/local/bin
    
    sudo rm -rf /usr/local/bin/npm
    
    ls -las
  6. Возможно, вам также потребуется выполнить дополнительные инструкции:

    sudo rm -rf /usr/local/share/man/man1/node.1
    
    sudo rm -rf /usr/local/lib/dtrace/node.d
    
    sudo rm -rf ~/.npm

Источник: ТониМц

Йохел Альварес
источник
7
Удаление node*не особенно безопасный способ продолжить. Там могут быть другие двоичные файлы с этим префиксом.
Ленар Хойт
2
Отлично, наконец, через 3 дня, когда время от времени возникали проблемы с npm, полностью удалялись и переустанавливались с помощью brew на моем Mac, это работает как чудо.
Амит Браво
Когда выстрелили первой командой, can't open /var/db/receipts/org.nodejs.pkg.bom: No such file or directory **** Can't open /var/db/receipts/org.nodejs.pkg.bom.пожалуйста, помогите
Ахтешам Шах
Даже после выполнения этих шагов на Mac 10.13.5, я все еще мог видеть npm и узел, что может быть не так?
vikramvi
25

понизить уровень до 0.10.36

  sudo npm cache clean -f
  sudo npm install -g n
  sudo n 0.10.36

обновить узел до стабильного v

  sudo npm cache clean -f
  sudo npm install -g n
  sudo n stable
Аня Ишмухаметова
источник
Я просто сделал это и, как ни странно, он снизил npm с 6.4.1 до 6.2.0.
Capn Sparrow
22

Я не уверен, что это потому, что у меня была старая версия (4.4.5), или потому, что я использовал официальный установщик, но большинство файлов, на которые есть ссылки в других ответах, не существовало в моей системе. Мне осталось только удалить следующее:

~/.node-gyp
~/.node_repl_history
/usr/local/bin/node
/usr/local/bin/npm
/usr/local/include/node
/usr/local/lib/dtrace/node.d
/usr/local/lib/node_modules
/usr/local/share/doc/node
/usr/local/share/man/man1/node.1
/usr/local/share/systemtap/tapset/node.stp

Я решил оставить, ~/.npmпотому что я планировал переустановить Node с Homebrew.

Big McLargeHuge
источник
Этот ответ был сделан в 2012 году, поэтому я уверен, что он имеет какое-то наследие. Теперь, если появляются новые ответы, я оцениваю их после проверки, если они эффективны.
Доминик Танкреди
15

Я суммировал существующие ответы и убедился, что Node js ПОЛНОСТЬЮ УДАЛЕН вместе с NPM.

  1. brew uninstall node
  2. which node
  3. sudo rm -rf /usr/local/bin/node
  4. sudo rm -rf /usr/local/lib/node_modules/npm/
  5. brew doctor
  6. brew cleanup --prune-prefix

Строки для копирования в терминал:

brew uninstall node;
which node;
sudo rm -rf /usr/local/bin/node;
sudo rm -rf /usr/local/lib/node_modules/npm/;
brew doctor;
brew cleanup --prune-prefix;
Дарий
источник
Я следовал за этими шагами, и это, кажется, работало. Я до сих пор есть каталоги в моей корневой папке , как .node-gyp/, .npm/, .npm-global/и .nvm/. Могу ли я удалить их или оставить их, если планирую переустановить узел?
WaterTrash
10
  • Удалить узел и / или узел_модули из / usr / local / lib

          ex code:
          cd /usr/local/lib
          sudo rm -rf node
          sudo rm -rf node_modules
  • Удалить узел и / или узел_модули из / usr / local / include

  • Удалить узел, узел-отладку и узел-gyp из / usr / local / bin
  • Удалите .npmrc из вашего домашнего каталога (это ваши настройки npm, не удаляйте это, если вы планируете переустановить Node прямо сейчас)
  • Удалить .npm из вашего домашнего каталога
  • Удалите .node-gyp из вашего домашнего каталога
  • Удалите .node_repl_history из вашего домашнего каталога
  • Удалить узел * из / usr / local / share / man / man1 /
  • Удалить npm * из / usr / local / share / man / man1 /
  • Удалить node.d из / usr / local / lib / dtrace /
  • Удалить узел из / usr / local / opt / local / bin /
  • Удалить узел из / usr / local / opt / local / include /
  • Удалить node_modules из / usr / local / opt / local / lib /
  • Удалить узел из / usr / local / share / doc /
  • Удалить node.stp из / usr / local / share / systemtap / tapset /
Раджив Сингх
источник
Я также должен был удалить node@6от/usr/local/opt/
эхо
9

Работал на меня.

$node --version

v11.1.0

$nvm deactivate

$nvm uninstall v11.1.0
Инес Гомес
источник
7
Но только если вы nvmустановили.
Себастьян Дресслер
@SebastianDressler Да :-) brew установить nvm. подробнее здесь stackabuse.com/how-to-uninstall-node-js-from-mac-osx
Инес Гомес
8

После

brew uninstall node

Я должен был знать, какой узел

which node

затем удали это

rm -rf /usr/local/bin/node
Хос Меркурий
источник
7

Если вы уже установили nvm, выполните следующие команды

  • nvm deactivate - Это удалит /.nvm/*/bin из $ PATH
  • nvm list - перечислить все версии узлов, установленных в системе
  • nvm uninstall <version> Вы можете указать все версии, которые хотите удалить.

Это всегда хорошо, что вы устанавливаете узел с помощью nvmи удаляете, используя nvm вместо brew.

Это решение сработало для меня.

Дополнительные команды

  • which nodeзнать путь узла, установленного в вашей системе. Вы можете использовать этот каталог для удаления узла вручную. Тогда вам может потребоваться настроить файл PATH соответствующим образом.
Ахил Надх ПК
источник
6

В продолжение удивительного ответа Доминика Танкреди , я свернул это в пакет bash и автономный скрипт. Если вы уже используете «Back Package Manager» под названием bpkg, вы можете установить скрипт, выполнив:

bpkg install -g brock/node-reinstall

Или вы можете взглянуть на скрипт на Github в brock / node-reinstall . Сценарий позволяет вам переустановить узел, используя nvm или nave, и указать версию узла в качестве значения по умолчанию.

барсук
источник
1
Я собирался опубликовать это и увидеть, что автор сам разместил наилучший из возможных ответов на проблему: используйте node-reinstall один раз, и вы никогда не будете оглядываться назад. Я попал в атаку и готов к дальнейшему развитию! Приветствия для этого @brockangelo!
Уоллес Сидре
3
Предупреждение ..... node-reinstallскрипт содержит следующую строку: sudo rm -rf $HOME/{local,lib,include,node*,npm,.npm*} так что если вам случится, что у вас есть каталог с таким именем $HOME(как и у меня), он будет сбит с толку!
terrycojones
6

В дополнение к основному ответу мне нужно было удалить все экземпляры npm, найденные в:

rm -rf /usr/local/share/man/man1/npm*
Карлос Перес Приего
источник
1
Это должен быть комментарий к соответствующему ответу, а не новый ответ.
Эдвард Андерсон
5

Я столкнулся с проблемой при удалении Node.js на моем Mac. У меня было какое-то странное поведение, как будто они npmвсе еще даже после удаления со всем этим.

Это было потому, что у меня была старая установка с macport. Таким образом, вы также должны удалить его с помощью порта:

sudo port uninstall nodejs

Может потребоваться установить много разных версий Node.js, поэтому удалите их все (одну за другой).

toutpt
источник
1
Это именно то, что случилось со мной :-) Спасибо за ваш ответ на добавление. Ну, у меня появилось несколько версий Cordova, и один npm не мог удалить одну Cordova, и наоборот.
peter_the_oak
5

может быть, вам нужно сделать

hash -r 

это помогает с проблемой символической ссылки

$ node -v
$ bash: /opt/local/bin/node: No such file or directory
красть
источник
4

Вы можете клонировать https://github.com/brock/node-reinstall и запустить простую команду, указанную в репозитории. После этого просто перезагрузите систему.
Это самый простой метод, который также работает для меня.

oxy_js
источник
4

Лучше всего скачать установочный пакет: .pkg на Mac. Предпочитаю последнюю стабильную версию.

Вот ссылка: Node.js

Этот пакет в конечном итоге перезапишет предыдущую версию и соответственно установит переменные среды. Просто запустите установщик, и все будет сделано в несколько кликов.

vkrishna17
источник
3

Я установил Node.js из источника, загруженного из репозитория git. Я установил с:

./configure
$ make
$ sudo make install

Поскольку файл make поддерживает это, я могу сделать:

$ sudo make uninstall
Дейв Кульман
источник
Как запустить его параллельно? скажи я хочу запустить 2 версии?
3

В дополнение к ответам, объясняющим очистку и установку с помощью homebrew, я обнаружил, что сам homebrew предоставил четкие указания на конфликты символических ссылок.

К сожалению, он предоставляет их по одному, когда сталкивается с ними, так что это немного трудоемко, но, похоже, он обнаружил все коллизии и был единственным способом, которым я мог получить чистую установку с помощью homebrew.

По сути, этот процесс:

  1. используйте homebrew для удаления узла
  2. чистый доморощенный
  3. используйте homebrew для установки узла и отметьте любой помеченный файл столкновения
  4. удалить файл, помечающий флажки (или весь каталог, если это каталог 'узла')
  5. переходите к шагу 1, пока не получите чистую установку

Схематически:

Вот вывод на экран из последних шагов моей установки - вы можете видеть, что это приводит к чистой установке (в конце концов ...):

computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink share/systemtap/tapset/node.stp
Target /usr/local/share/systemtap/tapset/node.stp
already exists. You may want to remove it:
  rm '/usr/local/share/systemtap/tapset/node.stp'

To force the link and overwrite all conflicting files:
  brew link --overwrite node

To list all files that would be deleted:
  brew link --overwrite --dry-run node

Possible conflicting files are:
/usr/local/share/systemtap/tapset/node.stp
/usr/local/lib/dtrace/node.d
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ rm '/usr/local/share/systemtap/tapset/node.stp'
computer1:DevResources user1$ brew uninstall node
Uninstalling /usr/local/Cellar/node/13.1.0... (4,591 files, 54.2MB)
computer1:DevResources user1$ brew cleanup
computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink lib/dtrace/node.d
Target /usr/local/lib/dtrace/node.d
already exists. You may want to remove it:
  rm '/usr/local/lib/dtrace/node.d'

To force the link and overwrite all conflicting files:
  brew link --overwrite node

To list all files that would be deleted:
  brew link --overwrite --dry-run node

Possible conflicting files are:
/usr/local/lib/dtrace/node.d
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ rm '/usr/local/lib/dtrace/node.d'
computer1:DevResources user1$ 
computer1:DevResources user1$ brew uninstall node
Uninstalling /usr/local/Cellar/node/13.1.0... (4,591 files, 54.2MB)
computer1:DevResources user1$ brew cleanup
computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ node -v
v13.1.0
Мик
источник
2

Прежде всего, вам нужно деактивировать узел: (mac) после установки новой версии узла.

nvm deactivate

Это удалено /Users/user_name/.nvm/*/bin из $ PATH

И после этого узел был обновлен

node --version
v10.9.0
Александр
источник
1

Это исправило это для меня. Исправление npm в Mac OS X для пользователей Homebrew . И это не требует слишком много шагов.

Просто перейдите к части решения, если вам все равно, почему.

Вот соответствующая часть для удобства:

Решение

Это решение исправляет ошибку, вызванную попыткой запуска npm update npm -g. Как только вы закончите, вам также не нужно будет использоватьsudo для установки модулей npm глобально.

Прежде чем начать, запишите все глобально установленные пакеты npm. Эти инструкции помогут вам удалить все эти пакеты. После того, как вы закончите, вам нужно переустановить их.

Выполните следующие команды, чтобы удалить все существующие глобальные модули npm, удалить узел и npm, переустановить узел с правильными значениями по умолчанию, сконфигурировать расположение для устанавливаемых глобальных модулей npm, а затем установить npm как свой собственный пакет.

rm -rf /usr/local/lib/node_modules
brew uninstall node
brew install node --without-npm
echo prefix=~/.npm-packages >> ~/.npmrc
curl -L https://www.npmjs.com/install.sh | sh

Узел и npm должны быть правильно установлены в этой точке. Последний шаг - добавить ~/.npm-packages/binв ваш PATHпакет npm и глобальные пакеты npm. Для этого добавьте следующую строку в ваш ~/.bash_profile:

export PATH="$HOME/.npm-packages/bin:$PATH"

Теперь вы можете без проблем переустановить любой глобальный пакет npm, который вам нужен.

pcatre
источник
4
Ответы только на ссылки не рекомендуется использовать при переполнении стека.
Эндрю Гримм
@AndrewGrimm имеет смысл, я скопировал соответствующую часть.
pcatre
1
После ввода следующей команды я получаю следующую ошибку: curl -L npmjs.com/install.sh | ш .... нпм ERR! Полный журнал этого прогона можно найти в: npm ERR! /Users/bddev/.npm/_logs/2018-10-18T20_02_34_337Z-debug.log npm ERR! код E404 нпм ERR! 404 Не найдено: 1.535s@latest npm ERR! Полный журнал этого прогона можно найти в: npm ERR! /Users/bddev/.npm/_logs/2018-10-18T20_02_36_399Z-debug.log Не удалось
Шоаиб Ахмед
1

В моем случае ни один из других ответов не работал, потому что я ранее понизился до node8. Поэтому вместо того, чтобы делать выше, у меня сработало следующее:

which node

который вернулся /usr/local/bin/node@8вместо/usr/local/bin/node

поэтому я выполнил эту команду:

brew uninstall node@8

который работал, а затем загрузил последнюю версию pkg с официального сайта и установил. После этого мне пришлось закрыть свой терминал и начать снова, чтобы получить доступ к новой версии

Раза Ахмед
источник
1

Если вы не можете найти узел, просто запустите whereis nodeи whereis npmиwhereis nvm и вы можете удалить перечисленные каталоги при необходимости.

Вам также нужно будет полностью закрыть свой терминал и снова открыть его, чтобы изменения вступили в силу.

Андромеда
источник
1

Докер - альтернативный подход

Docker - это своего рода сверхбыстрая виртуальная машина, которую можно использовать для запуска таких инструментов, как node (вместо этого устанавливайте их непосредственно в mac-os). Преимущества сделать это следующие

  • все вещи (файлы узлов 'milions') устанавливаются в образ / контейнер докера (они заключены в несколько файлов внутреннего докера)

  • вы можете сопоставить каталог Mac с проектом с вашим док-контейнером и иметь доступ к узлу - но вне докера система Mac-OS даже не знает, что узел установлен. Таким образом, вы получаете своего рода «виртуальную» консоль с доступными командами узлов, которая может работать с реальными файлами

  • Вы можете легко убить узел, найти его docker psи убитьdocker rm -f name_or_num

  • Вы можете легко удалить образ / контейнеры Docker одной командой docker rmi ...и получить свободное место - и установить его снова, запустив скрипт (ниже)

  • ваш узел инкапсулирован внутри докера и не имеет доступа ко всей системе - только к папкам, которые вы ему сопоставляете

  • Вы можете запускать службы узлов и легко сопоставлять их порт с портом Mac и иметь к ним доступ через веб-браузер.

  • Вы можете запустить много версий узлов одновременно

  • аналогичным образом вы можете установить другие инструменты, такие как (во многих версиях одновременно): php, базы данных, redis и т. д. - внутри докера без какого-либо взаимодействия с mac-os (которые вообще не замечают такого программного обеспечения). Например, вы можете одновременно запустить 3 mysql db с разными версиями и 3 php приложения с другой версией php ... - так что вы можете иметь много инструментов, но чистую систему

  • КОМАНДНАЯ РАБОТА: такую ​​среду можно легко клонировать на другие машины (и даже в системы Windows / Linux - с некоторыми модификациями) и предоставлять идентичную среду уровня докера - так что вы можете легко настроить и повторно использовать ваши сценарии / файлы Docker, а также среду настройки для новый член команды очень быстро (ему просто нужно установить докер и создать аналогичную структуру папок и получить копию скриптов - вот и все). Я работаю таким образом 2 года и со своей командой - и мы очень счастливы

инструкция

  • Установите докер, используя, например, эту инструкцию

  • Подготовьте специальный каталог для работы, например, мой каталог /Users/kamil/work (я буду использовать этот каталог дальше, но он может быть произвольным) - этот каталог будет «интерфейсом» между контейнерами Docker и вашим ststem файлом Mac. Внутри этого каталога создайте следующую структуру:

    /Users/kamil/work/code - здесь вы ставите свои проекты с кодом

    /Users/kamil/work/tools

    /Users/kamil/work/tools/docker-data - здесь мы отображаем выходные данные контейнеров, такие как журналы (или файлы базы данных, если кто-то использует db и т. д.)

    /Users/kamil/work/tools/docker

    /Users/kamil/work/tools/docker/node-cmd - здесь мы помещаем сценарии узла докера

  • внутри toolsсоздать файл, .envкоторый будет содержать в одном месте глобальные пути, используемые в других скриптах

  • innside dir ../node-cmdсоздать файл dockerfileсо следующим содержимым

  • innside dir ../node-cmdсоздать файл run-containerсо следующим содержимым (этот файл должен быть исполняемым, например, пользователем chmod +x run-container) - (обратите внимание, как мы сопоставляем порты и каталоги из внешнего «мира» с внутренней файловой системой докера)

  • Хорошо, теперь вы можете добавить проект, например, work/code/myProjectи добавить к нему следующий файл 'run-cmd' (должен быть исполняемым)

  • затем, если вы запустите скрипт выше (двойным щелчком), вы увидите консоль с доступными командами узла в каталоге проекта, например npm install

  • чтобы запустить проект в фоновом режиме (например, некоторые сервисы), например, запустить приложение angular-cli веб-сервера, вы можете использовать следующий сценарий (с именем - run-frontдолжен быть исполняемым) - (вы также должны отредактировать /etc/hostsфайл, чтобы добавить соответствующий домен)

Камил Келчевски
источник
0

@ lfender6445 ответ работал нормально для меня, чтобы удалить

Теперь, чтобы переустановить, у меня были проблемы с установкой последней версии вместо самой стабильной, поэтому для установки конкретной версии узла вы должны сделать:

brew install node@10 // 10 is the version I want
brew link node@10
Лукас Андраде
источник
-7

(сервер: Ubuntu 14)

1.) установить nvm (менеджер версий узлов) https://github.com/creationix/nvm

2.) nvm установить узел

3.) npm -v (запросить версию npm => 3.8.6)

4.) узел -v (запросить версию узла => v6.0.0)

AZE
источник