Не удается удалить глобальные пакеты npm после установки nvm
Я нашел несколько тем, связанных с этой проблемой, но никто, похоже, не имеет отношения к моему делу, и я не смог решить, используя найденные вами предложения.
Когда я запускаю npm uninstall -g "some package"
он просто возвращает: up to date in.043s
- И глобальный пакет остается.
Например, я пытаюсь uninstall babel-cli
и после running npm uninstall -g babel-cli
я все еще могу использовать cli
.
Это началось после того, как я удалил node
и npm
и переустановил с помощью nvm
. Мне интересно, пропустил ли я что-то во время удаления node
и вызвал проблему. Я проверил свои файлы точек и заметил, что у меня все еще есть .npm
вне .nvm
. Это нормально? Спасибо заранее за любые предложения.
Ответы
Ответ 1
(поддерживающий nvm здесь)
Список вещей, которые вы можете npm uninstall -g
, доступен в npm ls -g --depth=0
. Если вы не видите то, что хотите удалить там, но вы все равно можете получить к нему доступ, то, если он был npm-insatlled, он, вероятно, был установлен с вашей версией узла системы.
Вы можете быстро проверить это с nvm use system && npm ls -g --depth=0
. Если вы видите пакет там, то при использовании системной версии вы можете npm uninstall -g
.
Ответ 2
Извините, я знаю, что это старый вопрос, но здесь мы находимся в 2019 году, и это была просто проблема для меня... я обнаружил, что мне нужно было вызывать удаление по npm по пути, который волнует NVM.
Вот что у меня сработало:
Tue Aug 20 08:09:07 ~
<username> $ npm uninstall -g [email protected]
up to date in 0.051s
Tue Aug 20 08:09:13 ~
<username> $ edgemicro --version
current nodejs version is v8.16.0
current edgemicro version is 3.0.4
3.0.4
// Clearly didnt work :(
// Lets try sudo ….
Tue Aug 20 08:09:18 ~
<username> $ sudo npm uninstall -g [email protected]
Password:
up to date in 0.035s
Tue Aug 20 08:10:20 ~
<username> $ edgemicro --version
current nodejs version is v8.16.0
current edgemicro version is 3.0.4
3.0.4
// Still didnt work :(
// So where is this seemingly immortal executable?
Tue Aug 20 08:10:28 ~
<username> $ which edgemicro
/Users/<username>/.nvm/versions/node/v8.16.0/bin/edgemicro
// Its under some NVM specific path it seems.
// It seems NPM is also under some NVM specific path, kinda expected.
Tue Aug 20 08:10:33 ~
<username> $ which npm
/Users/<username>/.nvm/versions/node/v8.16.0/bin/npm
// So lets use that exact npm to perform the uninstall …
Tue Aug 20 08:10:42 ~
<username> $ /Users/<username>/.nvm/versions/node/v8.16.0/bin/npm uninstall -g edgemicro
npm WARN read-shrinkwrap This version of npm is compatible with [email protected], but npm-shrinkwrap.json was generated for [email protected] I'll try to do my best with it!
removed 2442 packages in 25.851s
Tue Aug 20 08:11:24 ~
<username> $ which edgemicro
Tue Aug 20 08:11:29 ~
<username> $ // Done.
Ответ 3
Я испытал то же самое для одного из глобальных пакетов npm, и следующее решение сработало для меня.
Пожалуйста, используйте sudo перед вашей командой, чтобы решить эту проблему. как sudo npm uninstall -g "некоторый пакет"
Без sudo:
[] $ npm удалить -g трюфель
в актуальном состоянии в 0,082 с
После попытки с sudo:
[] $ sudo npm uninstall -g трюфель
[sudo] пароль для шахида:
удалил 81 пакет за 1.902 с
[] $: Трюфель
bash: /usr/bin/truffle: нет такого файла или каталога
Ответ 4
Независимо от того, сколько раз вы вызываете npm uninstall babel,
ИЛИ Удаление нити -g babel
ИЛИ Удаление пряжи -g babel-cli
Он показывает обновление. И когда вы проверяете его, если он все еще существует, введя "babel -help"
Вы получаете this-> babel еще где-то на своем Mac
Я знаю его разочарование. Поэтому я нашел, где эти файлы хранятся локально, и после их удаления из локального хранилища я наконец получил → Наконец, моя система не понимает, что такое Babel. Что мы действительно хотим
Как я нашел это:
Результат поиска Finder не даст вам пути к глобальному хранилищу бабелей. Я обнаружил, что в нашем корневом каталоге "Macintosh HD" есть папка с именем /usr. Она скрыта
Итак, выберите finder → Go → Go to Folder.. И введите "/usr".
Откроется новое окно Finder и отобразит все файлы внутри него. Теперь вы можете бродить и проверять все файлы, которые вы установили, некоторые, возможно, забыты и не получили возможности удалить.
Перейдите в usr/local/bin ->, и здесь вы найдете файлы, которые вы установили во всем мире. как показано здесь → Каталог ярлыков
Опять же, как вы можете видеть, на значках есть значки стрелок, которые указывают, что это только ярлыки. Удаление их приведет к обрыву ссылки, но файлы все равно будут где-то там.
Чтобы удалить файлы, щелкните правой кнопкой мыши по значку и выберите "Показать оригинал",
Вы будете перенаправлены в папку, где вы найдете файл babel.js.
Помните, что это снова один файл. Чтобы полностью удалить babel-cli, выберите представление столбца в поисковом устройстве, и вы можете прокрутить влево и проверить его родительские каталоги. И здесь, где сделаны фактические установки.
finalpath часть 1
finalpath часть 2
Вы можете видеть, как и базовые модули узлов, которые устанавливаются в наших локальных веб-проектах, babel-cli и подобные подобные пакеты устанавливаются в аналогичном формате, но в этом глобальном местоположении.
Теперь вы можете щелкнуть правой кнопкой мыши папку babel-cli и переместить ее в корзину.
Надеюсь, что охота наконец закончилась.