После процесса установки я просто запустил «npm», и он говорит:
ОШИБКА открыть \settings.txt: [...]
Существует ли файл настроек в вашем каталоге установки?
Под каталогом установки подразумевается папка, в которой находится установленное приложение или где находится установщик?
Куда идет установленное приложение... по умолчанию это C:\Users\<yourusername>\AppData\Roaming\nvm
. Это должно выглядеть примерно так:
Основные файлы, которые нужно искать, это elevate.cmd
, elevate.vbs
, nvm.exe
и settings.txt
, а также nodejs.ico
(это просто значок, он не обеспечивает никакой функциональности).
Если settings.txt
не существует, возможно, он не был создан в процессе установки. Программа установки должна сделать это за вас, а ручная установка — нет. Если вы использовали установщик и не видите файл settings.txt
, то, вероятно, в установщике есть ошибка, которую мне было бы интересно отследить и исправить.
Файл настроек должен содержать примерно следующее содержимое:
root: C:\Users\Corey\AppData\Roaming\nvm
path: C:\Program Files\nodejs
Привет, это случилось и со мной. После завершения установки он открыл cmd.exe, а cmd.exe открылся с этим сообщением об ошибке.
settings.txt действительно существует в моей папке установки.
Когда я просматриваю свою новую переменную пути, она имеет это в конце: "[...мои предыдущие пути...];%NVM_HOME%;%NVM_SYMLINK%"
Итак, похоже, что эти %variables% не оцениваются в реальных каталогах, прежде чем добавлять их к пути поиска во время установки? Когда я вручную добавляю нужные каталоги в свой путь, кажется, что это работает, хотя я новичок в node.js, поэтому я пока очень мало понимаю, о чем говорю.
@bobbycircle - Возможно, переменные не оцениваются в нужное время ... Мне нужно это изучить. Я не думал об этом раньше, потому что... ну, это работало, и я не менял эту часть установщика. Я посмотрю на это, как только смогу.
То же самое здесь. Согласно @bobbycircle , ручная настройка моей переменной PATH помогла разобраться.
Столкнулся с такой же ошибкой после установки. В Windows 8+ вам нужно создать новое окно cmd, чтобы увидеть оцененные переменные среды %nvm_home% и %nvm_symlink%. Это изменение с Win 7 на 8, где существующая оболочка проводника Windows не может создать новый процесс и увидеть новые переменные среды. Если вы запускаете cmd.exe из Проводника, вам нужно сначала закрыть Win Explorer и перезапустить его, чтобы увидеть новые переменные Env.
@dan-sterling - я не сталкивался с этим в Windows 8 (для которой я это разработал). Именно поэтому также устанавливаются пользовательские атрибуты, тогда оболочка cmd подхватит путь. Хотя это не имеет значения — я создаю совершенно новый установщик для решения этих проблем.
Получил ту же проблему. Более того, создание файла settings.txt в этом каталоге не помогло. Мне нужно было создать его в ~
Я была такая же проблема. https://github.com/coreybutler/nvm-windows/issues/23 Комментарий @colmsjo решил эту проблему для меня.
Просто удалите %NVM_HOME%
и NVM_SYMLINK
из переменных окружения _user_.
Та же проблема здесь. Я следовал решению @queckezz , оно работает.
У меня также возникает эта проблема каждый раз, когда я его устанавливаю, я думаю, что запуск cmd.exe в конце установки - не очень хорошая идея, так как он может слишком часто давать сбой, создавая плохое первое впечатление об инструменте.
Я бы предпочел не запускать cmd.exe и просить пользователя закрыть сеанс Windows, открыть новый, а затем попробовать nvm в окне командной строки.
Также столкнулся с этой проблемой при запуске установщика 1.0.6. Windows 8, запускал установщик от имени администратора. file.exe не было на моем пути. Установка GnuWin32 также не решила проблему. Node еще не был установлен.
Я мог бы скопировать settings.txt в c:\ .
Решение @bobbycircle сработало для меня.
Я тоже столкнулся с этой проблемой (Windows 8.1). Закрытие и перезапуск командной строки не помогло (может процесс еще запущен - не проверял). По наитию я перезапустил винду. Проблема решена: не нужно возиться с установщиком PATH vars. Попробуй, прежде чем что-то менять
@coreybutler - также может быть хорошим средством защиты от сбоев для установщика: инициируйте перезагрузку в конце, «чтобы ваши изменения вступили в силу», чтобы устранить некоторые различия в пользовательской среде.
Иногда при настройке переменных окружения такое может случиться :+1:
Только что столкнулся с этим на Windows 8.
запустите свой терминал cmd от имени администратора
Возможно ли, что это не удалось, потому что установка не удалась... из-за пробела в папке User
? Это происходит в ошибке/проблеме № 41, так что, может быть, это происходит и здесь?
Решение @queckezz сработало
Решение @queckezz сработало. Спасибо
У меня была эта проблема.
Установщик запускался с повышенными привилегиями (требуется для установки).
Сеанс cmd, который он запускал, также запускается с повышенными привилегиями, но отказывается видеть настройки .txt
Перезапуск командной строки без прав администратора прекрасно видел settings.txt, и теперь nvm также работает нормально в сеансе администратора, запущенном в качестве администратора.
Решение @queckezz также сработало для меня. Спасибо
Решение @queckezz сработало +1
У меня такая же проблема. Проблема заключалась в том, что «C:\Program Files\nodejs» находился в моем пользовательском пути прямо перед новыми переменными ;%NVM_HOME%;%NVM_SYMLINK%.
В моем случае (Windows 7 и Windows 8.1) такое явление возникает сразу после установки.
Если я перезагружаюсь после установки, nvm для windows работает нормально
+1 за @sanori и перезагрузку после исправления установки
Проблема в том, что PATH не был правильно обновлен, а это означает, что в моем случае я обнаружил, что значение PATH равно ...";%NVM_HOME%;%NVM_SYMLINK%
. Эти ...
являются существующими записями, но перед точкой с запятой были добавлены двойные кавычки.
Как только это было исправлено, PATH = ...;%NVM_HOME%;%NVM_SYMLINK%
все работает корректно.
Вам не нужно копировать settings.txt в C:, D: или любой другой диск, который вы используете при запуске инструмента nvm.
Я также заметил %vars% на своем пути, но к тому времени вернулся к установке только активной версии Node, поэтому просто удалил их.
Я не могу поверить, что они (MicroSoft) не улучшили метод системных свойств для изменения пути. Я уверен, что это было такое же узкое текстовое поле со времен XP.
Настройка env vars в Windows работает отлично. Вы даже можете сделать это из powershell:
[System.Environment]::SetEnvironmentVariable("MYVAR", "WHATEVER", "Machine")
Я исправил эту проблему, перейдя в %AppData%/nvm
и изменив безопасность файла settings.txt
, чтобы Everyone
имел полный доступ к файлу.
Если вы предпочитаете не делать этого, вы также можете попробовать запустить nvm
из командной строки с повышенными привилегиями. Использование запуска от имени администратора.
После того, как это не сработало из изначально загруженного «Выполнить Cmd». Я загрузил cmd администратора и запустил список nvm , который сработал. Затем, когда я вернулся к обычному окну cmd, он продолжал работать.
Я получил эту ошибку, когда я устанавливал в первый раз. Потом запустил установщик от имени администратора, все нормально.
Я установил это, и все, что нужно было сделать, это перезапустить окна. У меня такое ощущение, что cmd просто нужно сбросить с новыми переменными среды.
Та же проблема здесь. Я следовал решению @queckezz , оно работает.
+1 перезагрузка на Win7
Для тех, кто тоже не может заставить его работать :: ПОПРОБУЙТЕ ЭТО
Просто закройте все свои экземпляры командной строки CMD и снова откройте от имени администратора (на всякий случай).
Исправил это для меня
@mcpDESIGNS спасибо, мне тоже помогло!
У меня такая же проблема на Win10 x64.
Но в моем случае это потому, что символическая ссылка указывала на несуществующую папку в C (C:\Program Files\nodejs\v1.1.2).
Единственная папка в папке nodejs — «v4.0.0», поэтому мне нужно было удалить символическую ссылку и создать другую, используя mklink /j "C:\Program Files\nodejs" "G:\Program Files (x86)\nvm
Это все еще проблема в Windows 7 по состоянию на 2.1.2016. Переменные не оцениваются в дочернем cmd.
@coreybutler Я полагаю, вы используете SETX VAR value
и start cmd
.
SETX VAR value
устанавливает переменную среды с именем VAR
только для новых экземпляров cmd
start cmd
запускает дочерний элемент текущего cmd, который использует родительскую среду.
Обходной путь состоит в том, чтобы дополнить SETX
SET VAR=value
, чтобы дублировать значение в текущую среду для дочерних процессов.
Я пробовал многие из вышеперечисленных решений, и единственное, что в итоге сработало для меня, - это перезапустить Windows 7. :disappointed:
К вашему сведению: поддержка Windows 7 = устарела.
@vferko - я явно не использую SET
или SETX
. Механизм InnoSetup обрабатывает все это. Я считаю, что проблема в последовательности. Время от времени установщик запускает окно cmd до завершения методов настройки переменных среды.
К вашему сведению: ОШИБКА при открытии settings.txt: [...] произошла со мной на Win10 x64. После открытия нового окна cmd кажется, что все в порядке :)
Еще бывает с 1.1.0 в Win10 x64. То же, что @DCorto
перезапустите cmd.exe и все в порядке
У меня как-то другие симптомы, но похоже это связано с этой проблемой:
Это должно быть решено с помощью нового установщика. InnoSetup был обновлен до версии 1.1.7, а в install.cmd было внесено несколько новых изменений. Windows 7 также технически не поддерживается NVM4W или Microsoft.
У меня такая же ошибка с новой версией 1.1.7, где находится пользовательская переменная, которую я не вижу на settings.txt
Извините, просто перезагрузите компьютер и все заработает 💯
Эта ошибка все еще присутствует. Некоторое время я без проблем использовал NVM, а теперь у меня есть проект, который требует от меня перемещения кэша NPM непосредственно на диск C (чтобы избежать проблем с длинным путем) и после того, как я внес это изменение (вероятно, это единственное изменение конфигурации NPM, которое я сделал, и в тот же день это начало происходить…) эта проблема начала происходить.
Я обнаружил, что запуск Powershell в качестве администратора позволяет мне запускать NVM без проблем, что является обходным путем, который я буду использовать сейчас (я мог бы установить права доступа к файлу settings.txt
на «все идет», как другой плакат если это сильно раздражает).
Я не думаю, что это будет решением для всех. Но, может быть, для некоторых. КРАТКИЙ ОТВЕТ: Попробуйте закрыть командное окно и открыть новое командное окно. ДЛИННЫЙ ОТВЕТ: Я обнаружил, что если я установил nvm с помощью nvm_setup.exe (загруженного в nvm_setup.zip) из командной строки Windows (командное окно cmd.exe), а затем попытался запустить nvm в том же сеансе командного окна (сразу после установки ), это выдало мне эту ошибку - ОШИБКА открытия settings.txt. Я посмотрел, и пути были добавлены в мои системные настройки PATH. Итак, я закрыл окно командной строки и открыл новое окно команд. Тогда это сработало. Я думаю, что даже несмотря на то, что установка добавляет путь к nvm.exe (и к settings.txt) в Windows PATH, он еще не распознается в том же командном окне. Закройте командное окно и откройте новое. Надеюсь, это поможет кому-то. Предложение для установщика, возможно, дать пользователю сообщение в начале установки о том, что окно команд закроется после завершения установки. Затем просто закройте командное окно, когда установка завершится. Затем пользователь вынужден открыть новое командное окно после установки.
Еще бывает с 1.1.0 в Win10 x64. То же, что @dcorto
перезапустите cmd.exe и все в порядке
то же самое с win10 + powershell, просто закройте экземпляр cmd или powershell и перезапустите новый cmd или powershell
InnoSetup не всегда соблюдает порядок операций при записи файла начальных настроек и установке пути. Вот почему повторное открытие окна работает после первоначальной установки.
У меня возникла ошибка, когда я запустил приложение npx create react, оно говорит, что введите точный путь, по которому zip-файл извлекается/копируется: после установки nvm и установки узла 12.
Еще бывает с 1.1.0 в Win10 x64. То же, что декоро
перезапустите cmd.exe и все в порядке
Этот стиль работает (как обходной путь) @Muizuddeen
Обнаружил, что если скопировать settings.txt
в c:
, тоже работает
Самый полезный комментарий
Я была такая же проблема. https://github.com/coreybutler/nvm-windows/issues/23 Комментарий @colmsjo решил эту проблему для меня.
Просто удалите
%NVM_HOME%
иNVM_SYMLINK
из переменных окружения _user_.