Не удается удалить глобальные пакеты 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 и переместить ее в корзину.

Надеюсь, что охота наконец закончилась.