8 ответов:
Edit: Похоже, что у новых установщиков больше нет этой проблемы, см. ответ by Параг Meshram как мой ответ, вероятно, устарел сейчас.
оригинальный ответ:
внимательно выполните следующие действия:
- http://nodejs.org/download/ загрузите 64-битную версию, 32 - для хипстеров
- установить его в любом месте вы хотите, по умолчанию:
C:\Program Files\nodejs- Панель управления - > Система - > расширенные Системные настройки - > Переменные среды
- выберите
PATHи выберите его для редактирования.если переменная пути
emptyменяем на это:C:\Users\{YOUR USERNAME HERE}\AppData\Roaming\npm;C:\Program Files\nodejsесли переменная PATH уже содержит
C:\Users\{YOUR USERNAME HERE}\AppData\Roaming\npmдобавьте следующее сразу после:;C:\Program Files\nodejsесли переменная PATH содержит информацию, но ничего не касается npm, добавьте это в конец пути:
;C:\Users\{YOUR USERNAME HERE}\AppData\Roaming\npm;C:\Program Files\nodejsтеперь, когда переменная PATH установлена правильно, вы все равно будете сталкиваться с ошибками. Вручную перейдите в каталог AppData, и вы обнаружите, что внутри роуминга нет каталога npm. Создайте этот каталог вручную.
повторно запустите командную строку, и теперь npm будет работать.
перейти к http://nodejs.org/
и нажмите на кнопку с надписью "скачать ..."
Это скачаю .msi (или .pkg для mac), который будет делать все установки и пути для вас, в отличие от выбранного ответа.
в дополнение к ответу от @StephanBijzitter я бы использовал следующее
PATHвместо переменных:%appdata%\npm %ProgramFiles%\nodejsваш
PATHбудет выглядеть так:[existing stuff];%appdata%\npm;%ProgramFiles%\nodejsэто имеет то преимущество, что neiter зависит от пользователя и не зависит от 32/64bit.
новые монтажники (.msi загружено с https://nodejs.org) есть опция" добавить в путь". По умолчанию он выбран. Убедитесь, что вы оставили его проверенным.
вы должны запустить программу установки от имени администратора.
- запустить командную строку от имени администратора
- каталог cd, где присутствует msi-файл
- запустите msi-файл, введя имя в командной строке
- вы должны быть рады видеть, что все команды узла работают из новой оболочки командной строки
У меня была та же проблема, что помогло нам превратить мою антивирусную защиту в течение 10 минут, пока установлен узел, и он работал как шарм.
все должно быть установлено в %appdata% (C:\Users\\AppData\Roaming), а не "программные файлы".
вот почему...
установщик MSI по умолчанию помещает узел и NPM, который поставляется с ним в "program files", и добавляет его в системный путь, но он устанавливает путь пользователя для NPM в %appdata% (c:\users[username]\appdata\roaming), так как у пользователя нет достаточных привилегий для записи в "program files".
Это создает беспорядок, так как все модули идут в %appdata%, и когда вы обновляете сам NPM - который сами NPM рекомендуют вам сделать сразу - вы получаете две копии: оригинал все еще в "program files", так как NPM не может стереть это, и новый inn %appdata%.
еще хуже, если вы ошибочно выполняете операции NPM как администратор (гораздо проще в Windows, чем на *nix), то он будет работать на копии "program files" npm node_modules. Потенциально настоящий бардак.
Итак, при запуске установщика просто укажите его на %AppData% и избежать всего этого.
и обратите внимание, что это не что - то странное-это то, что произойдет, если вы запустите установщик только с пользовательскими привилегиями.
причина, по которой вы должны изменить AppData может быть:
- узел.js не мог обрабатывать путь дольше, чем 256 символов, окна, как правило, имеют очень длинный путь.
- если вы входите в систему из корпоративной среды, ваши AppData могут быть на сервере-это не сработает. Каталог npm должен находиться на локальном диске.
даже после этого у последнего LTE (4.4.4) все еще есть проблема с Windows 10, он работал некоторое время, а затем всякий раз, когда я пытаюсь:
$ npm install _some_package_ --globalузел выдает ошибку" неустранимая ошибка CALL_AND_RETRY_LAST Allocation failed - process out of memory". Все еще пытаются найти решение этой проблемы.
единственное, что я нахожу, это запустить Vagrant или Virtual box, а затем запустить командную строку Linux (должен соответствовать пути), что является довольно грязным решением.

Comments