Nvm-windows: nvm не работает в 32/64 битных ситуациях для Windows 7

Созданный на 18 июл. 2016  ·  10Комментарии  ·  Источник: coreybutler/nvm-windows

Моя среда

  • [X] Windows 7 или более ранняя версия (не полностью поддерживается из-за EOL)
  • [ ] Windows 8
  • [] Windows 8.1
  • [] Windows 10
  • [] Windows 10 IoT Core
  • [] Windows Server 2012
  • [] Windows Server 2012 R2
  • [] Windows Server 2016
  • [] Моя установка Windows не на английском языке.

    Я уже...

  • [X] прочтите README, чтобы знать о проблемах с npm и антивирусах.

  • [X] просмотрел вики, чтобы убедиться, что моя проблема еще не решена.
  • [X] проверено, я использую учетную запись с правами администратора.
  • [X] проверил проблемы (открытые и закрытые), чтобы убедиться, что это не дубликаты.
  • [X] удостоверился, что это не вопрос о том, как использовать NVM для Windows, так как gitter используется для вопросов и комментариев.

    Моя проблема связана с (отметьте только те, которые применимы):

  • [] settings.txt

  • [] поддержка прокси
  • [X] Поддержка 32 или 64 бит

    Ожидаемое поведение

Я использую Windows 7/64 бит
Я установил (с правами администратора) NVM для Windows 1.1.1. Оттуда я использовал

nvm install 6.1.0 all
nvm install 6.3.0 all

Я тогда позвонил
nvm list
в результате чего

C:\Users\kagentes>nvm list
    6.3.0
    6.1.0

Я тогда побежал
nvm use 6.3.0 64

а потом
node -v
и ожидал получить
v6.3.0

Фактическое поведение

При беге
node -v
я получил

'node' is not recognized as an internal or external command,
operable program or batch file.

Также, даже после установки команды nvm use, я заметил, что список, похоже, не подтверждает, что команда «use» работает. Как в:

C:\Users\kagentes>nvm use 6.3.0 64
Now using node v6.3.0 (64-bit)

C:\Users\kagentes>nvm list

    6.3.0
    6.1.0

Судя по снимкам экрана на странице https://github.com/coreybutler/nvm-windows , я считаю, что команда nvm list должна возвращать что-то вроде этого ниже (но я НЕ получаю этого )

C:\Users\kagentes>nvm list

*   6.3.0 (In Use)
    6.1.0

На нем нет звездочки или индикатора «используется».

Возможно, это также поможет диагностировать проблему, но когда я выполняю команду nvm arch я получаю следующие странные результаты, независимо от того, что я установил в nvm use :

C:\Users\kagentes>nvm arch
System Default: 64-bit.
Currently Configured: -bit.

Шаги по воспроизведению проблемы:

Действия по воспроизведению уже приведены в разделе ожидаемого поведения выше. Я уже пробовал возможные рекомендации по другим вопросам, таким как Проблема № 146, а также по перезапуску оболочки, перезапуску компьютера и обеспечению того, чтобы все выполнялось с правами администратора. Перед тем, как начать все это, я удалил предыдущие версии Node, которые были на компьютере. (затем установил nvm-windows и следовал вашим инструкциям).

help wanted

Самый полезный комментарий

@kgentes - я предполагаю, что до nvm вы установили 64-битную версию узла и установили nvm по умолчанию.

После удаления узла убедитесь, что каталог, в который изначально был установлен узел, был удален, а не просто пуст. Для 64-разрядной версии Windows 7 значением по умолчанию является «C: Program Filesnodejs».

Если каталог «nodejs» все еще существует, то команда «nvm use» не может создать символическую ссылку на версию узла под управлением nvm.

У меня была такая же проблема, пока я вручную не удалил каталог «nodejs».

надеюсь, это поможет

Все 10 Комментарий

Извините за очевидный вопрос, но вы пытались перезапустить окно терминала? В Win7 иногда все еще давится при первой попытке использовать определенную версию (mklink).

Да, я сделал. Я попытался перезапустить окно терминала .. потом даже машина .. ни один результат не изменил.

Хорошо, я займусь этим, если у меня будет время. К сожалению, Win7 - не то, к чему я часто прибегаю.

@kgentes - я предполагаю, что до nvm вы установили 64-битную версию узла и установили nvm по умолчанию.

После удаления узла убедитесь, что каталог, в который изначально был установлен узел, был удален, а не просто пуст. Для 64-разрядной версии Windows 7 значением по умолчанию является «C: Program Filesnodejs».

Если каталог «nodejs» все еще существует, то команда «nvm use» не может создать символическую ссылку на версию узла под управлением nvm.

У меня была такая же проблема, пока я вручную не удалил каталог «nodejs».

надеюсь, это поможет

Спасибо, @pleverett .. Я попробую это скоро .. спасибо за

@pleverett СПАСИБО,
- «C: UsersusernameAppDataRoamingnpm»
- «C: UsersusernameAppDataRoamingnpm-cache»

Хотя, вероятно, в этом не было необходимости.

В любом случае, все работает. Благодаря!

@pleverett @coreybutler

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

npm config list

На данный момент никакая информация, кроме одной переменной ниже, не меняется.
user-agent = "npm/3.10.3 node/v6.3.0 win32 ia32"

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

если я перехожу только с 64-битной версии 6.3.0 на 32-битную версию 6.3.0, будут ли у меня такие же установки модулей глобального узла? или он сделает отдельные? Или мне нужно изменить версию, чтобы получить другой набор глобально установленных узловых модулей? В идеале я бы подумал, что для каждой битовой версии будет сохранен уникальный контекст (из-за собственных модулей узлов, таких как libxml - ??? и т. Д.), Но я могу понять, почему другим может не понравиться, чтобы это работало таким образом.

Я все еще использую неправильно? или это связанная ошибка?

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

@kgentes - Мне жаль, что я пропустил это ... наверное, это другая проблема.

Если вы переключаетесь только с 32-> 64-битной версии или наоборот, NVM4W будет использовать тот же глобальный каталог node_modules . Это было сделано намеренно, в первую очередь для того, чтобы свести к минимуму общий размер среды Node. Наличие отдельных установочных каталогов для 32- и 64-разрядных версий удвоит объем памяти большинства пользователей ... а об общем объеме памяти большинство пользователей даже не задумывается, пока у них не закончится свободное место. Несмотря на это, я все равно склоняюсь к использованию отдельного каталога установки в зависимости от архитектуры версия + процесс. Это действительно должно быть на усмотрение пользователя, и, как вы сказали, это нарушает работу некоторых нативных пакетов.

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

Была ли эта страница полезной?
0 / 5 - 0 рейтинги