Подтвердить что ты не робот

Nvm несовместим с опцией "префикс" конфигурации npm:

Я пытаюсь запустить еще одну версию NodeJS с nvm, но получаю эту ошибку:

$ nvm use v4.2.4

nvm is not compatible with the npm config "prefix" option: 
   currently set to "/Users/z/.npm-global"
Run `npm config delete prefix` or `nvm use --delete-prefix v4.2.4` to unset it.

У меня есть префикс, чтобы избежать sudo npm (см. https://docs.npmjs.com/getting-started/fixing-npm-permissions).

Можно ли использовать nvm без потери моего префикса для общедоступных пакетов?

4b9b3361

Ответ 1

Удалить и сбросить префикс

$ npm config delete prefix 
$ npm config set prefix $NVM_DIR/versions/node/v6.11.1

Примечание. Измените номер версии на номер, указанный в сообщении об ошибке.

nvm несовместим с опцией "префикс" конфигурации npm: в настоящее время установлено "/usr/local" "Выполнить" префикс удаления конфигурации npm "или" nvm использует --delete-prefix v6.11.1 --silent "для его отмены.


Кредиты @gabfiocchi на Github - "Вам нужно перезаписать префикс nvm"

Ответ 2

У меня была та же проблема, и выполнение npm config delete prefix мне не помогло.

Но это сделал:

После установки nvm с помощью brew создайте каталог ~/.nvm:
$ mkdir ~/.nvm

и добавьте следующие строки в ~/.bash_profile:

export NVM_DIR=~/.nvm
. $(brew --prefix nvm)/nvm.sh

(убедитесь, что у вас нет других связанных с nvm команд в ~/.bashrc, ~/.profile или ~/.bash_profile)

Откройте новый терминал, и на этот раз на нем не должно быть никаких предупреждений.
Убедитесь, что nvm работает, выполнив команду nvm --version.
После этого установите/переустановите NodeJS, используя nvm install node && nvm alias default node.

Больше информации

Я установил nvm с помощью homebrew и после этого получил следующее уведомление:

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

Вам следует создать рабочий каталог NVM, если он не существует:

 mkdir ~/.nvm

Добавьте следующее в ~/.bash_profile или в желаемую оболочку    файл конфигурации:

 export NVM_DIR=~/.nvm
 . $(brew --prefix nvm)/nvm.sh

Вы можете установить $NVM_DIR в любое место, но оставив его без изменений    /usr/local/Cellar/nvm/0.31.0 уничтожит все установленные Nov установки Node    после обновления/переустановки.

Игнорирование этого привело меня к этому сообщению об ошибке:

nvm несовместим с опцией "TG418]" префикс ": в настоящее время установлено значение "/usr/local/Cellar/nvm/0.31.0/versions/node/v5.7.1"
   Запустите nvm use --delete-prefix v5.7.1 --silent, чтобы сбросить его.

Я следовал более раннему руководству (из homebrew/nvm) и после этого обнаружил, что мне нужно переустановить NodeJS. Итак, я сделал:

nvm install node && nvm alias default node

и это было исправлено.

Обновление: Использование brew для установки NVM вызывает медленный запуск Терминала. Вы можете следовать этой инструкции, чтобы решить ее.

Ответ 3

Это может быть конфликтом с вашей локальной установкой Node (если в прошлом она была установлена другим способом, чем NVM). Вы должны удалить этот экземпляр узла:

  1. удалить node_modules sudo rm -rf/usr/local/lib/node_modules
  2. удалить узел sudo rm/usr/local/bin/node
  3. удалить ссылку на узел cd/usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm cd/usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm

После того, как вы не можете установить NVM

Ответ 4

Возможно, проблема в том, что ваш домашний каталог установлен где-то, потому что nvm работает неправильно с символическими ссылками. Поскольку мне все равно, где находится мой $NVM_DIR, я запускаю это, и все работает нормально:

$ mv ~/.nvm /tmp/
$ export NVM_DIR="/tmp/.nvm"
$ nvm use --delete-prefix v6.9.1

Ответ 5

Я столкнулся с этим, используя node, установленный через nvm, с nvm, установленным через homebrew. Я решил это, запустив brew uninstall nvm, rm -rf $NVM_DIR, а затем переустановив nvm с помощью официальной установки script и переустановки node версии я необходимо.

Примечание. У меня также был установлен $NVM_DIR и символический. Я переместил его обратно в свой homedir.

Ответ 6

enter image description here У меня была та же самая проблема, и это действительно раздражало каждый раз с терминалом. Я запускаю команду в терминал, и это было исправлено

Для тех, кто пытается удалить nvm из варева

может не хватить просто заварить деинсталляцию nvm

если вы видите, что префикс npm по-прежнему/usr/local, выполните эту команду

sudo rm -rf/usr/local/ndomlib/nodendom,/.npm,_modulescasts,bin,share/man отпуска /ndomnpm*,node*,man1/node*}

Ответ 7

Я следовал за fooobar.com/questions/211682/... ответом, но это не сработало.

$ npm config delete prefix 
$ npm config set prefix $NVM_DIR/versions/node/v6.11.1

После выполнения рекомендованных команд мой nvm больше не работал, при запуске nvm use бы правильная версия используемого node -v, а при запуске node -v показывался другой. Не было возможности изменить версию узла.

Я удалил и переустановил NVM полностью, чтобы исправить это. Я следовал за https://github.com/creationix/nvm#manual-uninstall, запустив

$ rm -rf "$NVM_DIR"

Затем отредактировал мой .zshrc чтобы удалить строки, связанные с nvm, которые в моем случае были

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

Затем запустил новую оболочку (чтобы nvm не загружался в эту новую оболочку) и запустил https://github.com/creationix/nvm#install-script

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

Который добавил nvm строки, которые я ранее удалил в моем .zshrc.

Тогда я смог использовать nvm, как раньше. Я предполагаю, что странный случай, когда что-то пошло не так и заставило меня переустановить все, не похоже, что большинство людей проходят через это из-за этой проблемы.

Ответ 8

Позвольте мне описать мою ситуацию.

Сначала проверьте текущий конфиг

$ nvm use --delete-prefix v10.7.0
$ npm config list

Затем я нашел ошибку конфигурации в выводе:

; project config /mnt/c/Users/paul/.npmrc
prefix = "/mnt/c/Users/paul/C:\\Program Files\\nodejs"

Итак, я удалил C:\\Program Files\\nodejs в /mnt/c/Users/paul/.npmrc.

Ответ 9

Я искал решение для проблемы префикса nvm и нашел этот вопрос (прежде чем найти решение). Вот мой "диалог" оболочки. Надеюсь, это может быть полезно для кого-то. Я смог установить префикс с помощью этого сообщения: https://github.com/npm/npm/issues/6592

Когда я попробовал npm config delete prefix или nvm use --delete-prefix перед использованием npm --prefix="" set prefix "", я получил только: npm ERR! не в порядке 0

Обратите внимание, что вам придется повторять ту же процедуру с каждой версией node, префикс возвращается (в моем случае)/usr/local после установки.

    $ nvm install 0.10
    ######################################################################## 100.0%
    nvm is not compatible with the npm config "prefix" option: currently set to "/usr/local"
    Run `npm config delete prefix` or `nvm use --delete-prefix v0.10.44` to unset it.
    $ npm --prefix="" set prefix ""
    $ nvm use 0.10.44
    nvm is not compatible with the npm config "prefix" option: currently set to "/home/john"
    Run `npm config delete prefix` or `nvm use --delete-prefix v0.10.44` to unset it.
    $ nvm use --delete-prefix v0.10.44
    Now using node v0.10.44 (npm v1.3.10)
    $ nvm ls
    v0.10.44
             v4.4.3
    ->       system
    default -> 4.4.3 (-> v4.4.3)
    node -> stable (-> v4.4.3) (default)
    stable -> 4.4 (-> v4.4.3) (default)
    iojs -> N/A (default)
    $ npm config get prefix
    /usr/local

Ответ 10

У меня возникла проблема после перемещения моей домашней папки на новый диск на Linux. Он был исправлен путем удаления папки .nvm и переустановки nvm

Ответ 11

Просто решил проблему. Я поместил символическую ссылку $HOME/.nvm в $HOME/.nvm $DEV_ZONE/env/node/nvm. Я столкнулся с той же проблемой. Я заменил NVM_DIR в $HOME/.zshrc следующим образом

export NVM_DIR="$DEV_ZONE/env/node/nvm"

Кстати, пожалуйста, установите NVM с помощью команды curl или wget не с помощью brew. Для получения дополнительной информации, пожалуйста, проверьте комментарий в этом выпуске на Github: 855 # issuecomment-146115434

Ответ 12

У меня просто есть идея. Используйте символьную ссылку для устранения ошибки, и вы по-прежнему можете использовать свой префикс для глобально установленных пакетов. ln -s [your prefix path] [path in the '~/.nvm'] тогда у вас будет символическая папка в папке ~/.nvm, но на самом деле ваши глобальные пакеты все еще установлены в [ваш префиксный путь ]. Тогда ошибка не будет отображаться снова, и вы можете использовать nvm use ** обычном режиме. PS: у меня это работает на mac. pps: не забудьте установить $PATH в папку npm bin для использования глобально установленных пакетов.

Ответ 13

Я решил эту проблему, когда она отображалась на терминалах VSCode и JetBrains, но не на собственном терминале, используя следующие команды:

ls -la /usr/local/bin | grep "np[mx]"

Это даст вам окончательный путь в конце:

... npm -> ../lib/node_modules/npm/bin/npm-cli.js
... npx -> ../lib/node_modules/npm/bin/npx-cli.js

После этого удаление файлов и повторный запуск кода VS должны решить проблему:

rm -R /usr/local/bin/npm /usr/local/lib/node_modules/npm/bin/npm-cli.js
rm -R /usr/local/bin/npx /usr/local/lib/node_modules/npm/bin/npx-cli.js

исправить ссылку: https://github.com/nvm-sh/nvm/issues/1690#issuecomment-392014774

Ответ 14

Примечание:
удалить, удалить или удалить nvm - просто удалите папку $NVM_DIR (обычно ~/.nvm)
вы можете попробовать:
rm -rf ~/.nvm