Ссылаясь на изображение выше, может ли кто-нибудь объяснить, почему мой сценарий NPM постоянно терпит неудачу, говоря, что node не распознается.
nodejs явно находится в моем $ PATH, и он правильно определяет, где он находится на моем компьютере, вне сценария npm.
Я использую Git Bash внутри ConEMU в версии Windows 10.0.17134, сборка 17134.
Я не удивлюсь, если проблема связана с Windows, поскольку проблема, похоже, возникла после последнего обновления ОС, установленного чуть более недели назад (у меня эта проблема была примерно столько же времени)
Я не уверен, почему они разделены двоеточием. Когда я их устанавливаю, я использую пользовательский интерфейс переменных среды в свойствах системы. В этом нет двоеточий или чего-то еще, поэтому я предполагаю, что терминал отображает это так.
Работает ли узел в общей консоли Windows? Вам необходимо определить, является ли это общей проблемой Windows или как-то связано с вашей консольной средой.
Да, я могу нормально запустить сценарий npm внутри командной строки Windows и внутри Windows PowerShell. Это означает, что проблема связана с Git Bash. Использует ли Git Bash другую переменную $ PATH при запуске сценариев npm?
Возможно это актуально: Git Bash не видит мой путь к Windows
Спасибо за предложение. К сожалению, я уже изучал этот вопрос и ответы, пока у меня была эта проблема, но, похоже, это не помогает ... Я пробовал следующее на моем .bashrc: export PATH = "$PATH:/c/nodejs" и "PATH=$PATH;/c/nodejs" и "PATH=$PATH:/c/nodejs" и "PATH=$PATH;C:\nodejs" и несколько других вариантов, каждый раз перезапуская Git Bash для проверки результата, но ничего не помогло.
Вы пытались ввести node.exe вместо node, как было предложено в ответе на этот вопрос?
К сожалению, этот сценарий npm - всего лишь тестовый пример. Проблема, с которой я действительно столкнулся, заключается в попытке запустить npm install в одном из моих проектов, но когда дело доходит до установки node-sass, npm пытается вызвать узел, но не может. Поэтому я не могу поменять node на node.exe
Что ж, в одном из этих ответов говорится, что требуется node.exe. Я сам не знаю git bash.
К сожалению, поэтому ответы там бесполезны для моей ситуации.
Открытый вопрос: Избегайте ввода расширения имени файла для исполняемых файлов Windows с некоторыми предложениями.
Меня больше всего беспокоит то, что я занимаюсь разработкой на этой машине в течение многих лет. Чуть более недели назад мне пришлось переустановить зависимости узлов из-за проблемы безопасности, которую GitHub заметил с одной из моих зависимостей. Итак, чтобы он внезапно перестать работать невероятно бесит
У вас есть переменная окружения pathext? См. epsil.github.io/blog/2016/04/20/#update-pathext.
Я делаю (глядя в панель управления переменными среды Windows). Значение .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PHP. Полагаю, я буду искать .EXE? Что там
Наконец-то он заработал! Кровавая Windows ... Мне пришлось переместить переменную окружения из конца в начало ... Ясно, что Windows не понравилось, что $ PATH был таким длинным, и поэтому не выполнял синтаксический анализ до записи nodejs -_-
Это не объясняет, почему он отлично работал из командной строки Windows. Это больше похоже на проблему Git Bash, обрабатывающую длинный путь, а не на проблему Windows. В любом случае, рад, что вы нашли способ исправить.
Спасибо, что обсудили со мной варианты





Наконец-то он заработал! Неудивительно, что это проблема Windows. Поскольку у меня было несколько записей в моем $ PATH, а одна из nodejs была в конце, Windows автоматически завершалась ошибкой при чтении всего пути и не доходила до записи nodejs. Исправление заключалось в перемещении nodejs в панели управления Environment Variables на самый верх.
Почему все элементы на вашем пути разделены
:(двоеточием). В Windows они должны быть разделены;(точка с запятой). Или ваша оболочка так странно показывает это? Вы уверены, что фактический путь настроен правильно? Можете ли вы запустить узел из обычной консоли Windows?