Я что-нибудь испортил, переустановив node с помощью Homebrew?

#node.js #npm #homebrew

#node.js #npm #homebrew

Вопрос:

Изначально я установил Node с веб-сайта, но недавно установил его снова с Homebrew, потому что я пытался больше использовать Homebrew. Вот что я заметил: я хотел перечислить свои глобальные модули npm, поэтому я побежал npm list -g | head -1 . Это вернуло /usr/local/Cellar/node/15.3.0/lib папку, содержащую только те модули, которые я установил с момента установки Node с помощью Homebrew. Если я загляну, /usr/local/bin я увижу все модули npm, которые я установил в прошлом.

Что я хочу знать:

Это плохо, что у меня есть большинство моих модулей npm /usr/local/bin , но новые, которые я устанавливаю, собираются /usr/local/Cellar/node/15.3.0/lib ? Будут ли какие-либо проблемы с совместимостью? Если да, то что мне делать?

Комментарии:

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

Ответ №1:

Если ничего другого, это усложнит проблемы с системой отладки. Наличие нескольких версий npm этого глобального CLI для установки в разных местах является частым источником вопросов StackOverflow. Это может не вызвать никаких проблем, но если вы хотите быть осторожным, вам следует удалить версию Node.js вы не используете вместе со всеми глобальными пакетами для этой версии. Если вы хотите быть очень осторожным, удалите обе версии, а затем переустановите только одну новую. Просто используйте единственную версию.

Наконец, если вам нужно переключаться между разными версиями Node.js часто полностью пропускайте установщик и Homebrew и используйте менеджер версий, например nvm .

Комментарии:

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

2. @trott Спасибо за ваш ответ. Вы знаете, как я бы удалил все пакеты? Прямо сейчас, когда я использую npm i -g <package> его, он сохраняется /usr/local/Cellar/node/15.3.0/bin , поэтому я хочу удалить все старые пакеты, /usr/local/bin но не знаю, должен ли я просто удалить эти двоичные файлы?