Nvm-windows: Чистая установка nvm 1.1.5, узел 8.10.0 - npm не работает

Созданный на 25 июн. 2018  ·  27Комментарии  ·  Источник: coreybutler/nvm-windows

C:\Users\me> nvm install 8.10.0
Downloading node.js version 8.10.0 (64-bit)...
Complete
Creating C:\Users\me\AppData\Roaming\nvm\temp

Downloading npm version 5.6.0... Complete
Installing npm v5.6.0...

Installation complete. If you want to use this version, type

nvm use 8.10.0

C:\Users\me> nvm use 8.10.0
Now using node v8.10.0 (64-bit)

C:\Users\me> npm --version
module.js:549
    throw err;
    ^

Error: Cannot find module 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:188:16)
    at bootstrap_node.js:609:3
module.js:549
    throw err;
    ^

Error: Cannot find module 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:188:16)
    at bootstrap_node.js:609:3

Каталог C: \ Users \ me \ AppData \ Roaming \ nvm \ v8.10.0 \ node_modules существует, но пуст.

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

Все еще та же проблема.
Через год все еще не видел 1.1.8 @coreybutler

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

У меня точно такая же проблема.

Убедитесь, что в вашем имени пользователя нет места, в некоторых случаях «C: \ Users \ Name LastName \ AppData \ Roaming \ nvm», когда я изменил папку установки nvm на другое место «C: \ node \ nvm», установка узла + npm работал нормально.

В nvm root нет пробелов (или других нечетных символов).

У меня такая же проблема с nvm 1.1.6 и установкой узла 10.6.0 (или любой другой версии узла).

Если я перейду к <nvm-root>/v10.6.0/node_modules папка будет просто пустой. Это соответствует сообщению об ошибке при попытке запустить npm.

 Directory of C:\Users\flawi\AppData\Roaming\nvm\v10.6.0\node_modules

09.07.2018  18:22    <DIR>          .
09.07.2018  18:22    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  220.739.076.096 bytes free

Если я наблюдаю за процессом установки после nvm install 10.6.0 , я вижу, как npm загружается и извлекается в C:\Users\flawi\AppData\Roaming\nvm\temp (я вижу npm-v6.1.0.zip и извлеченные папки). Однако после установки ничего не перемещается в <nvm-root>/v10.6.0/node_modules .

Для полноты картины вот мой settings.txt :

root: C:\Users\flawi\AppData\Roaming\nvm
path: C:\Program Files\nodejs

Кстати, у меня такая же проблема с версиями nvm 1.1.5 и 1.1.4 (также, если я использую пути без пробелов).

Смягчение

Если вы скопируете npm-v6.1.0.zip из <nvm-root>/v10.6.0/temp после завершения загрузки и сами извлечете его в <nvm-root>/v10.6.0/node_modules/npm все будет нормально.

Я видел это при попытке установить узел 10.6.0 с 1.1.5. Я даже запускал командную строку администратора с самого начала.

Если я загрузил пакет 10.6.0 с веб-сайта nodejs.org и сравнил его с тем, что было в каталоге nvm / v10.6.0, то, что было установлено nvm, не хватало более половины пакетов npm.

После копирования все работало нормально, но nvm не показала, что установка не завершилась успешно.

353 связанных?

У меня такая же проблема. Установил 10.7.0, npm не работает. В корне nvm нет пробелов

Чтобы уточнить, у меня была папка node_modules и папка npm, но в ней отсутствовали файлы и не было ошибок ни при одной из моих попыток установить или переустановить. Как только я удалил эту папку npm, загрузил npm-v6.1.0.zip вручную и извлек мой npm, все работает нормально.

Аналогичная проблема (с новой установкой nvm 1.1.5 - после удаления узла и удаления всех каталогов npm в user \ AppData ...). Когда я набираю npm, я получаю следующее.

внутренние / модули / cjs / loader.js: 583
бросить ошибку;
^

Ошибка: не удается найти модуль npmlog
в Function.Module._resolveFilename (internal / modules / cjs / loader.js: 581: 15)
в Function.Module._load (internal / modules / cjs / loader.js: 507: 25)
в Module.require (internal / modules / cjs / loader.js: 637: 17)
при необходимости (внутренние / модули / cjs / helpers.js: 20:18)
в C: \ Users \ timhu \ AppData \ Roaming \ nvm \ v10.7.0 \ node_modules \ npm \ bin \ npm-cli.js: 22: 13
на объекте.(C: \ Users \ timhu \ AppData \ Roaming \ nvm \ v10.7.0 \ node_modules \ npm \ bin \ npm-cli.js: 145: 3)
в Module._compile (внутренний / модули / cjs / loader.js: 689: 30)
в Object.Module._extensions..js (internal / modules / cjs / loader.js: 700: 10)
в Module.load (internal / modules / cjs / loader.js: 599: 32)
в tryModuleLoad (внутренний / модули / cjs / loader.js: 538: 12)
внутренние / модули / cjs / loader.js: 583
бросить ошибку;
^

Ошибка: не удается найти модуль npmlog
в Function.Module._resolveFilename (internal / modules / cjs / loader.js: 581: 15)
в Function.Module._load (internal / modules / cjs / loader.js: 507: 25)
в Module.require (internal / modules / cjs / loader.js: 637: 17)
при необходимости (внутренние / модули / cjs / helpers.js: 20:18)
в C: \ Users \ timhu \ AppData \ Roaming \ nvm \ v10.7.0 \ node_modules \ npm \ bin \ npm-cli.js: 22: 13
на объекте.(C: \ Users \ timhu \ AppData \ Roaming \ nvm \ v10.7.0 \ node_modules \ npm \ bin \ npm-cli.js: 145: 3)
в Module._compile (внутренний / модули / cjs / loader.js: 689: 30)
в Object.Module._extensions..js (internal / modules / cjs / loader.js: 700: 10)
в Module.load (internal / modules / cjs / loader.js: 599: 32)
в tryModuleLoad (внутренний / модули / cjs / loader.js: 538: 12)

Итак, у меня была аналогичная проблема, и я решил ее. Я расскажу о шагах, которые я предпринял, чтобы решить эту проблему, и, надеюсь, это кому-то поможет.
tldr;
попробуйте: nvm install <nodeversion> <32 or 64>
nvm install 8.11.4 64

Сначала я установил nvm, затем узел 8.11.4.
Использовал ли nvm 8.11.4
Когда я попробовал npm, окна не смогли его найти, а папка node_modules в установке 8.11.4 была пустой.
Удален nvm.
Пытался установить nodejs прямо с nodejs.org, и это дало мне ошибку длинного пути к файлу.
Может и не нужно, но я сделал это ...
Отредактировал мой системный реестр, чтобы разрешить длинные пути к файлам для всех пользователей ->
В regedit перейдите в HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Policies и установите / создайте запись DWORD (32-разрядную) с именем LongPathsEnabled со значением 1. (В Windows Pro есть способ сделать это без входа в реестр, но я ' м на Доме, а это не вариант)


Снова установил nvm, потом nvm install 8.11.4 .
Произошла ошибка безопасности.
удален 8.11.4
переустановил УКАЗАТЬ 64-битную с помощью команды nvm install 8.11.4 64

После этого вроде все заработало.
Как я уже сказал, надеюсь, это поможет кому-то другому, но я уверен, что опыт может отличаться. Удачи!

У меня такая же проблема с nvm 1.1.7.

  • Я удалил все ссылки на node / npm
  • Чистая установка nvm 1.1.7
  • nvm install 6.5.0
  • nvm use 6.5.0
  • npm install -g gulp
  • Создает папку npm в моей папке AppData\Roaming\ и помещает gulp в \npm\node_modules
  • В моем AppData\Roaming\nvm\v6.5.0\node_modules есть только папка npm

Мне не хватает некоторых параметров PATH? У меня %NVM_HOME% и %NVM_SYMLINK%

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

Таким образом, он ищет свои команды в нужном месте, просто не устанавливает его в нужное место.

Хорошо, я думаю, что нашел проблему. Похоже, что внутри npm все еще действительно держится за папку AppData \ Roaming для своих настроек, одна из которых - prefix . Если вы сделаете npm config get prefix он, скорее всего, укажет не на то место. Вам нужно запустить npm config set prefix с расположением специальной папки nodejs , которую создает nvm, которая является %NVM_SYMLINK% . Теперь, когда я запускаю все мои установки npm, они помещаются в нужное место, даже если я переключаю версии nvm.

Источник исправления (не связанный с nvm): https://stackoverflow.com/a/38270345/1535244

РЕДАКТИРОВАТЬ: настройка для prefix находится в файле .npmrc папке C:\Users\You\ . Если по какой-то причине этот параметр существует там, он будет использоваться, и не похоже, что nvm меняет его, поэтому он всегда будет смотреть не в том месте. Удаление этой записи в этом файле также решает проблему.

Не уверен, что это кому-то поможет, но оставлю здесь на всякий случай. У меня также была эта проблема, и я обнаружил, что то, что сказали @dfibuch и @flawi, было довольно полезным для понимания проблемы, с которой я

  • На моем пути нет пробелов
  • nvm версия 1.1.6
  • Работа с 64-битными исполняемыми файлами
  • Использование Git Bash в Windows
  • Я удалил настройку для ; prefix=C:\Program Files\nodejs из моего .npmrc и значение, которое я получал с помощью npm config get prefix , не изменилось, оно по-прежнему составляет ~\AppData\Roaming\npm .

В моем случае я пытался установить последнюю версию node (в настоящее время 10.9.0 ), потому что мне нужно, чтобы моя версия npm была >6 чтобы иметь возможность запустите npm audit , и последняя версия node я установил, была 8.11.3 , которая пришла с npm version 5.6.0 .

Перед удалением настройки prefix , когда я установил версию узла 10.9.0 с nvm install latest 64 все, что я получил в своей папке ~\AppData\Roaming\nvm было новой папкой с именем v10.9.0 котором было только node.exe , но не было node_modules (похоже, что он даже не пытался установить npm ). После того, как я удалил prefix , я начал получать папку node_modules созданную внутри nvm\v10.9.0 , но при установке все еще получал ошибку:

$ nvm install latest 64
Downloading node.js version 10.9.0 (64-bit)...
Complete
Downloading npm version 6.2.0... Download failed. Rolling Back.
Rollback failed. remove ~\AppData\Roaming\nvm\temp\npm-v6.2.0.zip: The process cannot access the file because it is being used by another process.
Could not download npm for node v10.9.0.
Please visit https://github.com/npm/npm/releases/tag/v6.2.0 to download npm.
It should be extracted to ~\AppData\Roaming\nvm\v10.9.0

Поэтому удаление параметра prefix немного улучшило ситуацию для меня, но не решило проблему полностью. Я также закрыл все и перепробовал, так что нет никакого способа, чтобы «это использовалось другим процессом».

После этого я решил попробовать процесс @flawi . Я нашел файл npm-v6.1.0.zip в моей папке nvm/temp и попытался извлечь npm в мою папку nvm\v10.9.0 , и это вызвало ошибку, что zip-файл поврежден или имеет неправильный формат. Это может быть причиной того, что nvm не может переместить или извлечь его в мою последнюю установку node.

Возможно, проблема не полностью в nvm , а в последней версии npm внутри узла v 10.9.0 .

Я вернулся к использованию v 8.11.3 и обновил npm на npm install npm<strong i="59">@latest</strong> -g . Он обновился правильно, и я могу запустить npm audit . Вот почему я думаю, что это может быть проблема с пакетом внутри 10.9.0 но не с самим пакетом.

Еще хочу добавить, что у меня была аналогичная проблема, как у @dfibuch. Я установил serve глобально неделю назад, и он был установлен в другую папку, чем ~\AppData\Roaming\npm\version\node_modules , а также сделал gulp . Gulp все равно работал (я не совсем уверен, почему), но для того, чтобы пакет serve работал, мне пришлось вручную скопировать его из того места, где он был установлен, в папку моей версии внутри nvm.

Обновление до версии 1.1.7, которая решает # 373 (проблемы с npm для Node 10.x.x +). Проблема с пробелами в пути была решена в мастере (через PR # 355) и запланирована к выпуску в 1.1.8. Если вам нужна функциональность прямо сейчас, вы можете собрать ее из исходного кода. Я выпущу 1.1.8, как только смогу, но есть еще несколько исправлений, которые все еще добавляются.

Закрытие, поскольку вышеупомянутые проблемы / решения должны решить эту проблему.

У меня была такая же проблема (пустой каталог node_modules), и отключение антивируса решило проблему (с использованием nvm 1.1.7)

То же, что @sergioedo (отключение антивируса при установке через nvm). Спасибо за помощь!

Все еще та же проблема.
Через год все еще не видел 1.1.8 @coreybutler

Собираетесь на два года @coreybutler , ничего?

@filipemerker

(2019-09-06) Я активно работаю над новыми действиями Github для создания релизов. В master (который содержит готовящуюся к выпуску версию 1.1.8) внесено несколько замечательных вкладов, но мне всегда приходилось собирать их вручную ... и, как многие из вас заметили, мое время было чрезвычайно трудным. ограничено довольно долгое время. Подготовка сборки NSIS требует много времени, но как только это будет автоматизировано, людям станет значительно легче вносить изменения и фактически видеть их выпущенными.

Конечно, я все еще не думаю, что 1.1.8 исправит это (если не было других изменений, не упомянутых здесь). В том, как он пытается установить npm, есть что-то, что действительно не нравится антивирусу, и общее правило «отключить AV» - это не то, что каждый хочет или даже может сделать.

Для McAfee Endpoint Security блокирует сканирование при доступе. Однако в его журналах никогда ничего нет (или они доступны только моим сетевым администраторам).

@tedyyu @filipemerker Действия Github полностью изменились, когда я над ним работал ... разные форматы, библиотеки и т.д. Вроде пришлось перезапустить, потом Go переключился на модули. К тому времени я был занят другими вещами (см это и это ). Таким образом, никаких новых выпусков. Это не упало из моего поля зрения ... на самом деле, мы работаем над совершенно новой средой разработки CLI, поскольку NVM4W - лишь одна из многих.

Очень ранний набросок мокапа:

image

RE: Антивирус и npm

Все крупные антивирусные компании представили и одобрили NVM4W ... не знаю, почему они до сих пор жалуются, но это может быть связано с npm. В Node 8.xx использовалась версия npm с некоторыми жестко закодированными установочными зависимостями (что было проблемой в процессе уже несколько лет, несмотря на устаревание Node 8), что порождает некое странное поведение.

@coreybutler, как я уже сказал, он не жалуется, он просто молча блокирует извлечение / перемещение / копирование. И не из-за старого npm (это все еще происходит с последними версиями и LTS-версиями). Этот комментарий содержит подробности: https://github.com/coreybutler/nvm-windows/issues/364#issuecomment -403754900

Я только что пошел посмотреть исходный код.

// иногда Windows может потребоваться некоторое время, чтобы разрешить доступ к большим объемам файлов после распаковки, используйте экспоненциальную отсрочку, чтобы дождаться готовности

Если это правда, то возможно, что AV значительно замедляет его, сканируя каждый извлеченный файл (из них ~ 4400). Кажется, что вы ничего не делаете, когда цикл повторных попыток прекращается, что объясняет, почему сбой полностью молчит.

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

Если вы находитесь за корпоративным брандмауэром с прокси-сервером, требующим аутентификации, вам, возможно, придется использовать это исправление здесь, чтобы вручную скопировать папку npm: https://geektalk.tech/2019/05/29/nvm-is-a-life-saver-when -you-want-to-work-with-multiple-version-of-node-js / , как уже упоминал https://gitter.im/coreybutler/nvm-windows?at=5e137763e409da486cd5aba1

После этого рекомендуется настроить прокси в npm, как описано здесь
npm config set https-proxy и npm config set proxy или здесь

Если вам необходимо пройти аутентификацию на прокси-сервере, этого может быть недостаточно, тогда вам, возможно, придется установить локальный прокси, который также поддерживает предоставление токенов аутентификации, таких как px, и установить прокси-сервер в npm на локальный порт, например http: //172.0 .0,1 : 3128

Ударьте по той же проблеме сегодня. Пытался несколько раз - запускал cmder и от имени администратора, использовал каталог без места для NVM, но без помощи.

C:\Development                                                                                                                         
λ nvm use 14.8                                                                                                                         
14.8.0                                                                                                                                 
Now using node v14.8.0 (64-bit)                                                                                                        

C:\Development                                                                                                                         
λ node -v                                                                                                                              
v14.8.0                                                                                                                                

C:\Development                                                                                                                         
λ npm -v                                                                                                                               
internal/modules/cjs/loader.js:1083                                                                                                    
  throw err;                                                                                                                           
  ^                                                                                                                                    

Error: Cannot find module 'C:\DevTools\nodejs\node_modules\npm\bin\npm-cli.js'                                                         
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:1080:15)                                                       
    at Function.Module._load (internal/modules/cjs/loader.js:923:27)                                                                   
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)                                                
    at internal/main/run_main_module.js:17:47 {                                                                                        
  code: 'MODULE_NOT_FOUND',                                                                                                            
  requireStack: []                                                                                                                     
}                                                                                                                                      
internal/modules/cjs/loader.js:1083                                                                                                    
  throw err;                                                                                                                           
  ^                                                                                                                                    

Error: Cannot find module 'C:\DevTools\nodejs\node_modules\npm\bin\npm-cli.js'                                                         
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:1080:15)                                                       
    at Function.Module._load (internal/modules/cjs/loader.js:923:27)                                                                   
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)                                                
    at internal/main/run_main_module.js:17:47 {                                                                                        
  code: 'MODULE_NOT_FOUND',                                                                                                            
  requireStack: []                                                                                                                     
}                                                                                                                                      

C:\Development             

@rkschamer, спасибо, ты
На моей машине в C:\Users\<usernname>\AppData\Roaming\nvm была временная папка, в которой было много zip-файлов, но я не мог их извлечь, потому что они были повреждены.
Я смог решить эту проблему, удалив все версии, а также удалив временную папку с zip-файлами. Потом снова начал устанавливать нужные версии.

Повторюсь, обходной путь - отключить сканирование AV при установке.

Фактическое исправление требует лучшего решения задержки распаковки Windows.

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

Смежные вопросы

thany picture thany  ·  4Комментарии

janpio picture janpio  ·  3Комментарии

David263 picture David263  ·  3Комментарии

eliavmaman picture eliavmaman  ·  6Комментарии

martijnsenden picture martijnsenden  ·  3Комментарии