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 существует, но пуст.
У меня точно такая же проблема.
Убедитесь, что в вашем имени пользователя нет места, в некоторых случаях «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 не показала, что установка не завершилась успешно.
У меня такая же проблема. Установил 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
на объекте.
в 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
на объекте.
в 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.
nvm install 6.5.0
nvm use 6.5.0
npm install -g gulp
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
; 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 - лишь одна из многих.
Очень ранний набросок мокапа:
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.
Самый полезный комментарий
Все еще та же проблема.
Через год все еще не видел 1.1.8 @coreybutler