Ошибка error spawn wine enoent

Ошибка error spawn wine enoent wow

Обновлено: 11.02.2023

Сегодня я пытался установить зависимости в одном проекте на общем с другими разработчиками серваке. Использовал для установки зависимостей из package.json npm install . Всё стандартно, ничего необычного, локально на своей машине с CentOS 7 я делал это много раз, и проблем никогда не наблюдалось. Но тут что-то пошло не так, и мне вылетела странная ошибка error: npm ERR! Error: ENOENT, lstat . Надписи на экране стали пугающе красными.

Я попытался перезапустить установку, но результатов эти действия никаких не дали. Немного побеседовав с Гуглом, нашёл лаконичное и простое решение своей проблемы на github’е:

И всё! Проблема решена, и экран окрасился в приятные зелёные тона. Магия, скажете вы. А смысл прост: эта команда очищает все коряво установленные пакеты в вашей локальной папке пакетов node_modules, которые и вызывают ошибки при установке.

По причине этих кривых пакетов у нас npm install и не завершался нормально. npm cache clean удалит эти нехорошие пакеты, и после этого вы сможете спокойно вызывать npm install или npm install -g <package_name> . Проблем возникнуть не должно. Ну лично у меня после очистки кэша всё сразу поставилось гладко.

:)

Если вам этот совет помог, поделитесь ссылкой на решение со своими друзьями и коллегами!

Примечание автора: многие проблемы с этой ошибкой побудили меня опубликовать этот вопрос для будущих ссылок.

вопросы:

Я нашел особый простой способ получить представление о первопричине:

Я нашел очень простой способ определить, какая команда вызывает проблему, а не добавлять прослушиватели событий везде в вашем коде, как предложено в ответе @laconbass. Ключевая идея-обернуть исходный вызов spawn оболочкой, которая печатает аргументы, отправленные вызову spawn.

вот функция обертки, поместите ее в верхнюю часть index.js или независимо от сценария запуска вашего сервера.

таким образом, вы можете легко узнать, какая команда фактически выполняется, а затем вы можете узнать, почему nodejs не может найти исполняемый файл для устранения проблемы.

Шаг 1: Обеспечить spawn называется правильно

запускает новый процесс с заданным command , с аргументами командной строки args . Если опустить, args по умолчанию пустой массив.

третий аргумент используется для указания дополнительных параметров, по умолчанию:

использовать env чтобы указать переменные среды, которые будут видны новому процессу, значение по умолчанию process.env .

убедитесь, что вы не вводите аргументы командной строки в command и все spawn вызов действителен. Переходите к следующему шагу.

Шаг 4: Обеспечить command существует в каталоге тех, которые определены в PATH

икра может испускать ENOENT ошибка, если имя файла command (i.e, ‘some-command’) не существует по крайней мере в одном из каталогов, определенных на PATH .

найдите точное место command . В большинстве дистрибутивов linux это можно сделать с терминала с помощью . Он сообщит вам абсолютный путь к исполняемому файлу (как указано выше) или скажет, если он не найден.

пример использования которого и его вывод, когда команда нашел

пример использования которого и его вывод, когда команда не найдено

miss-installed программы являются наиболее частой причиной для не нашел. при необходимости обратитесь к документации по каждой команде и установите ее.

когда команда представляет собой простой файл сценария, убедитесь, что он доступен из каталога на PATH . если это не так, либо переместить его в одну или сделать ссылку на него.

после определения PATH правильно установлен и command is доступный из него, вы должны иметь возможность порождать свой дочерний процесс без spawn ENOENT быть брошенным.

5f884cf6dc1b2410080017.jpg

Я пытаюсь подключить отладку для php в Visual Code с помощью XDebug, но выскакивает ошибка:

Я вроде уже всё сделал по гайдам из интернета, у меня стоит XAMMP, который уже имеет XDebug.dll, поэтому я дополнил php.ini так:

Настроил путь к php в настройках Visual Code:

Перезапустил VSCode и сервер в XAMPP и это не помогло, ошибка осталась. Все пути верные, пробовал с разными слэшами в пути, тоже не помогло.

Примечание автора : множество проблем с этой ошибкой побудило меня опубликовать этот вопрос для будущих ссылок.

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

В моем случае я передавал всю команду как строку, как вы, exec вместо того, чтобы передавать команду в качестве первого аргумента и параметры в качестве массива для второго аргумента. например, я делал spawn( «adb logcat -c» ) вместо spawn( «adb», [ «logcat», «-c» ] ) .

ПРИМЕЧАНИЕ. Эта ошибка почти всегда возникает из-за того, что команда не существует, потому что рабочий каталог не существует или из-за ошибки Windows.

Я нашел очень простой способ понять причину:

Я нашел очень простой способ определить, какая команда вызывает проблему, вместо добавления прослушивателей событий в вашем коде, как предложено в ответе @laconbass. Основная идея заключается в том, чтобы обернуть исходный вызов spawn оболочкой, которая печатает аргументы, отправленные вызову spawn.

Вот функция-обертка, поместите ее в начало index.js или любой другой сценарий запуска вашего сервера.

Таким образом, вы можете легко узнать, какая команда на самом деле выполняется, а затем вы можете узнать, почему nodejs не может найти исполняемый файл для решения проблемы.

Шаг 2: Определите эмиттер события, который испускает событие ошибки

поиск по исходному коду для каждого вызова spawn или child_process.spawn , т. е.

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

если первые две строки еще

сделать этот шаг снова, пока они не. вы должны определить прослушиватель, который выдает ошибку, прежде чем перейти к следующему шагу.

Шаг 3: убедитесь, что переменная окружения $PATH установлен

существует два возможных сценария:

  1. вы полагаетесь на значение по умолчанию spawn поведение, поэтому среда дочернего процесса будет такой же, как process.env .
  2. вы явно передав env объект spawn на options аргумент.

в обоих сценариях вы должны проверить PATH ключ на объекте среды, который будет использовать порожденный дочерний процесс.

пример для случая 1

пример для сценария 2

отсутствие PATH (то есть это undefined ) приведет к spawn для передачи ENOENT , так как невозможно будет найти command если это абсолютный путь к исполняемому файлу.

, когда PATH правильно установлен, перейдите к следующему шагу. это должен быть каталог, или список директорий. Последнее дело обычное.

Читайте также:

      

  • Sublime text 3 ошибка package control
  •   

  • Хотите включить загрузку по мобильной сети mortal kombat как исправить
  •   

  • Как установить дьябло 2 от механиков
  •   

  • Raid shadow legends ошибка aksoundengine dll
  •   

  • Wasteland системные требования

Recommend Projects

  • React photo

    React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo

    Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo

    Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo

    TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo

    Django

    The Web framework for perfectionists with deadlines.

  • Laravel photo

    Laravel

    A PHP framework for web artisans

  • D3 photo

    D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Visualization

    Some thing interesting about visualization, use data art

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo

    Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo

    Microsoft

    Open source projects and samples from Microsoft.

  • Google photo

    Google

    Google ❤️ Open Source for everyone.

  • Alibaba photo

    Alibaba

    Alibaba Open Source for everyone

  • D3 photo

    D3

    Data-Driven Documents codes.

  • Tencent photo

    Tencent

    China tencent open source team.

Содержание

  1. Ошибка error spawn wine enoent wow
  2. Шаг 1: Обеспечить spawn называется правильно
  3. Шаг 4: Обеспечить command существует в каталоге тех, которые определены в PATH
  4. Шаг 2: Определите эмиттер события, который испускает событие ошибки
  5. Шаг 3: убедитесь, что переменная окружения $PATH установлен
  6. Как отладить «Ошибка: вызвать ENOENT» на node.js?
  7. Когда я получаю следующую ошибку:
  8. Какую процедуру я могу выполнить, чтобы исправить ее?
  9. ОТВЕТЫ
  10. Ответ 1
  11. Ответ 2
  12. Шаг 1: Убедитесь, что spawn называется правильным способом
  13. Шаг 2: Идентифицируйте событие, излучающее событие ошибки
  14. Шаг 3. Убедитесь, что переменная среды $PATH установлена ​​
  15. Шаг 4: Убедитесь, что command существует в каталоге тех, которые определены в PATH
  16. Ответ 3
  17. Ответ 4
  18. Ответ 5
  19. Ответ 6
  20. Ответ 7
  21. Ответ 8
  22. Ответ 9
  23. Ответ 10
  24. Ответ 11
  25. Ответ 12
  26. Ответ 13
  27. Ответ 14
  28. Ответ 15
  29. Ответ 16
  30. Ответ 17
  31. Ответ 18
  32. Ответ 19
  33. Вы меняете опцию env ?
  34. Ответ 20
  35. Ответ 21
  36. Действия

Ошибка error spawn wine enoent wow

Сегодня я пытался установить зависимости в одном проекте на общем с другими разработчиками серваке. Использовал для установки зависимостей из package.json npm install . Всё стандартно, ничего необычного, локально на своей машине с CentOS 7 я делал это много раз, и проблем никогда не наблюдалось. Но тут что-то пошло не так, и мне вылетела странная ошибка error: npm ERR! Error: ENOENT, lstat . Надписи на экране стали пугающе красными.

Я попытался перезапустить установку, но результатов эти действия никаких не дали. Немного побеседовав с Гуглом, нашёл лаконичное и простое решение своей проблемы на github’е:

И всё! Проблема решена, и экран окрасился в приятные зелёные тона. Магия, скажете вы. А смысл прост: эта команда очищает все коряво установленные пакеты в вашей локальной папке пакетов node_modules, которые и вызывают ошибки при установке.

По причине этих кривых пакетов у нас npm install и не завершался нормально. npm cache clean удалит эти нехорошие пакеты, и после этого вы сможете спокойно вызывать npm install или npm install -g

. Проблем возникнуть не должно. Ну лично у меня после очистки кэша всё сразу поставилось гладко.

Если вам этот совет помог, поделитесь ссылкой на решение со своими друзьями и коллегами!

Примечание автора: многие проблемы с этой ошибкой побудили меня опубликовать этот вопрос для будущих ссылок.

Я нашел особый простой способ получить представление о первопричине:

Я нашел очень простой способ определить, какая команда вызывает проблему, а не добавлять прослушиватели событий везде в вашем коде, как предложено в ответе @laconbass. Ключевая идея-обернуть исходный вызов spawn оболочкой, которая печатает аргументы, отправленные вызову spawn.

вот функция обертки, поместите ее в верхнюю часть index.js или независимо от сценария запуска вашего сервера.

таким образом, вы можете легко узнать, какая команда фактически выполняется, а затем вы можете узнать, почему nodejs не может найти исполняемый файл для устранения проблемы.

Шаг 1: Обеспечить spawn называется правильно

запускает новый процесс с заданным command , с аргументами командной строки args . Если опустить, args по умолчанию пустой массив.

третий аргумент используется для указания дополнительных параметров, по умолчанию:

использовать env чтобы указать переменные среды, которые будут видны новому процессу, значение по умолчанию process.env .

убедитесь, что вы не вводите аргументы командной строки в command и все spawn вызов действителен. Переходите к следующему шагу.

Шаг 4: Обеспечить command существует в каталоге тех, которые определены в PATH

икра может испускать ENOENT ошибка, если имя файла command (i.e, ‘some-command’) не существует по крайней мере в одном из каталогов, определенных на PATH .

найдите точное место command . В большинстве дистрибутивов linux это можно сделать с терминала с помощью . Он сообщит вам абсолютный путь к исполняемому файлу (как указано выше) или скажет, если он не найден.

пример использования которого и его вывод, когда команда нашел

пример использования которого и его вывод, когда команда не найдено

miss-installed программы являются наиболее частой причиной для не нашел. при необходимости обратитесь к документации по каждой команде и установите ее.

когда команда представляет собой простой файл сценария, убедитесь, что он доступен из каталога на PATH . если это не так, либо переместить его в одну или сделать ссылку на него.

после определения PATH правильно установлен и command is доступный из него, вы должны иметь возможность порождать свой дочерний процесс без spawn ENOENT быть брошенным.

Я пытаюсь подключить отладку для php в Visual Code с помощью XDebug, но выскакивает ошибка:

Я вроде уже всё сделал по гайдам из интернета, у меня стоит XAMMP, который уже имеет XDebug.dll, поэтому я дополнил php.ini так:

Настроил путь к php в настройках Visual Code:

Перезапустил VSCode и сервер в XAMPP и это не помогло, ошибка осталась. Все пути верные, пробовал с разными слэшами в пути, тоже не помогло.

Примечание автора : множество проблем с этой ошибкой побудило меня опубликовать этот вопрос для будущих ссылок.

В моем случае я передавал всю команду как строку, как вы, exec вместо того, чтобы передавать команду в качестве первого аргумента и параметры в качестве массива для второго аргумента. например, я делал spawn( «adb logcat -c» ) вместо spawn( «adb», [ «logcat», «-c» ] ) .

ПРИМЕЧАНИЕ. Эта ошибка почти всегда возникает из-за того, что команда не существует, потому что рабочий каталог не существует или из-за ошибки Windows.

Я нашел очень простой способ понять причину:

Я нашел очень простой способ определить, какая команда вызывает проблему, вместо добавления прослушивателей событий в вашем коде, как предложено в ответе @laconbass. Основная идея заключается в том, чтобы обернуть исходный вызов spawn оболочкой, которая печатает аргументы, отправленные вызову spawn.

Вот функция-обертка, поместите ее в начало index.js или любой другой сценарий запуска вашего сервера.

Таким образом, вы можете легко узнать, какая команда на самом деле выполняется, а затем вы можете узнать, почему nodejs не может найти исполняемый файл для решения проблемы.

Шаг 2: Определите эмиттер события, который испускает событие ошибки

поиск по исходному коду для каждого вызова spawn или child_process.spawn , т. е.

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

если первые две строки еще

сделать этот шаг снова, пока они не. вы должны определить прослушиватель, который выдает ошибку, прежде чем перейти к следующему шагу.

Шаг 3: убедитесь, что переменная окружения $PATH установлен

существует два возможных сценария:

  1. вы полагаетесь на значение по умолчанию spawn поведение, поэтому среда дочернего процесса будет такой же, как process.env .
  2. вы явно передав env объект spawn на options аргумент.

в обоих сценариях вы должны проверить PATH ключ на объекте среды, который будет использовать порожденный дочерний процесс.

пример для случая 1

пример для сценария 2

отсутствие PATH (то есть это undefined ) приведет к spawn для передачи ENOENT , так как невозможно будет найти command если это абсолютный путь к исполняемому файлу.

, когда PATH правильно установлен, перейдите к следующему шагу. это должен быть каталог, или список директорий. Последнее дело обычное.

Источник

Как отладить «Ошибка: вызвать ENOENT» на node.js?

Когда я получаю следующую ошибку:

Какую процедуру я могу выполнить, чтобы исправить ее?

Примечание автора.. Многие проблемы с этой ошибкой побудили меня опубликовать этот вопрос для будущих ссылок.

Связанные вопросы:

ОТВЕТЫ

Ответ 1

ПРИМЕЧАНИЕ. Эта ошибка почти всегда возникает из-за того, что команда не существует, потому что рабочий каталог не существует или из-за ошибки только для Windows.

Я нашел очень простой способ понять причину:

Проблема этой ошибки в том, что в сообщении об ошибке действительно мало информации, чтобы сказать вам, где находится сайт вызова, т.е. какой исполняемый файл/команда не найден, особенно если у вас большая кодовая база, где много вызовов спавна. С другой стороны, если мы знаем точную команду, которая вызывает ошибку, тогда мы можем следовать @laconbass ‘answer, чтобы решить проблему.

Я нашел очень простой способ определить, какая команда вызывает проблему, вместо добавления прослушивателей событий в вашем коде, как предложено в ответе @laconbass. Основная идея заключается в том, чтобы обернуть исходный вызов spawn оболочкой, которая печатает аргументы, отправленные на вызов spawn.

Вот функция-обертка, поместите ее в верхнюю часть index.js или любого другого сценария запуска вашего сервера.

Затем в следующий раз, когда вы запустите свое приложение, перед сообщением с неперехваченным исключением вы увидите что-то вроде этого:

Таким образом, вы можете легко узнать, какая команда на самом деле выполняется, а затем вы можете узнать, почему nodejs не может найти исполняемый файл для решения проблемы.

Ответ 2

Шаг 1: Убедитесь, что spawn называется правильным способом

Запускает новый процесс с заданным command с аргументами командной строки в args . Если опустить, args по умолчанию задает пустой массив.

Третий аргумент используется для указания дополнительных параметров, по умолчанию:

Используйте env , чтобы указать переменные среды, которые будут видимы для нового процесса, по умолчанию это process.env .

Убедитесь, что вы не вставляете аргументы командной строки в command , а весь spawn вызов действителен. Перейдите к следующему шагу.

Шаг 2: Идентифицируйте событие, излучающее событие ошибки

Найдите исходный код для каждого вызова spawn или child_process.spawn , т.е.

и прикрепите там прослушиватель событий для события «error», чтобы вы заметили точный Event Emitter, который бросает его как «Unhandled». После отладки этот обработчик можно удалить.

Выполните, и вы должны получить путь к файлу и номер строки, где был зарегистрирован ваш прослушиватель ошибок. Что-то вроде:

Если первые две строки все еще

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

Шаг 3. Убедитесь, что переменная среды $PATH установлена ​​

Возможны два сценария:

  • Вы полагаетесь на поведение по умолчанию spawn , поэтому дочерняя среда процесса будет такой же, как process.env .
  • Вы — экспликация, передающая объект env на spawn в аргументе options .

В обоих сценариях вы должны проверить ключ PATH на объекте среды, который будет использовать дочерний процесс, созданный.

Пример сценария 1

Пример сценария 2

Отсутствие PATH (т.е. it undefined ) приведет к тому, что spawn испустит ошибку ENOENT , так как не удастся найти какой-либо command , если только это абсолютный путь к исполняемому файлу.

Когда PATH установлен правильно, перейдите к следующему шагу. Это должен быть каталог или список каталогов. Последний случай является обычным.

Шаг 4: Убедитесь, что command существует в каталоге тех, которые определены в PATH

Spawn может испускать ошибку ENOENT , если имя файла command (т.е. ‘some-command’) не существует, по крайней мере, в одном из каталогов, определенных в PATH .

Найдите точное место command . В большинстве дистрибутивов Linux это можно сделать с терминала с помощью команды which . Он укажет вам абсолютный путь к исполняемому файлу (например, выше) или сообщите, не найден ли он.

Пример использования которого и его вывод, когда команда найдена

Пример использования которого и его вывод, когда команда не найдена

прошитые программы являются наиболее распространенной причиной для не найденной команды. Обратитесь к каждой документации команды, если необходимо, и установите ее.

Когда команда представляет собой простой файл script, убедитесь, что он доступен из каталога в PATH .. Если это не так, переместите его на один или создайте для него ссылку.

После того, как вы определили PATH правильно установленный и command доступен из него, вы сможете запустить дочерний процесс без spawn ENOENT .

Ответ 3

Как @DanielImfeld указал на него, ENOENT будет выброшен, если вы укажете «cwd» в параметрах, но данный каталог не существует.

Ответ 4

Решение для Windows: замените spawn на node-cross-spawn. Например, например, в начале вашего app.js:

Ответ 5

Ответ @laconbass помог мне и, вероятно, является наиболее правильным.

Я пришел сюда, потому что я использовал спавн неправильно. В качестве простого примера:

это правильно:

Тем не менее, я рекомендую сделать это следующим образом:

это потому, что тогда cp.on(‘exit’, fn) будет всегда cp.on(‘exit’, fn) , пока bash установлен, в противном случае cp.on(‘error’, fn) может cp.on(‘error’, fn) первым, если мы используем его Первый способ, если мы запустим ‘npm’ напрямую.

Ответ 6

например. замените spawn (‘npm’, [‘-v’], ) с помощью:

для всех node.js версия:

для node.js 5.x и более поздних версий:

Ответ 7

Для всех, кто может наткнуться на это, если все остальные ответы не помогут, и вы находитесь в Windows, знайте, что в настоящее время существует большая проблема с spawn в Windows и переменную среды PATHEXT , которая может привести к тому, что определенные вызовы на запуск не будут работать в зависимости от того, как установлена ​​целевая команда.

Ответ 8

В моем случае я получил эту ошибку, вызванную из-за того, что необходимые зависимые системные ресурсы не были установлены.

В частности, у меня есть приложение NodeJS, которое использует ImageMagick. Несмотря на то, что установлен пакет npm, ядро ​​Linux ImageMagick не было установлено. Я сделал apt-get для установки ImageMagick, и после этого все отлично поработало!

Ответ 9

Я столкнулся с той же проблемой, но нашел простой способ ее исправить. По-видимому, это ошибки spawn() , если программа была добавлена ​​в PATH пользователем (например, работают обычные системные команды).

Чтобы исправить это, вы можете использовать модуль which ( npm install —save which ):

Ответ 10

Убедитесь, что установленный модуль установлен или полный путь к команде, если он не является модулем node

Ответ 11

Используйте require(‘child_process’).exec вместо spawn для более конкретного сообщения об ошибке!

Ответ 12

Я также проходил через эту досадную проблему, выполняя свои тестовые случаи, поэтому я попробовал много способов решить эту проблему. Но способ для меня — запустить ваш тестовый прогон из каталога, в котором находится ваш основной файл, который включает в себя функцию spawn для nodejs, примерно так:

Например, это имя файла test.js, поэтому просто перейдите в папку, в которой он находится. В моем случае это тестовая папка:

тогда от запуска вашего тестового бегуна в моем случае его мокко, так что это будет так:

Я потратил больше одного дня, чтобы понять это. Наслаждаться!!

Ответ 13

Я получал эту ошибку при попытке отладки программы node.js из редактора VS Code в системе Debian Linux. Я заметил, что в Windows все работает нормально. Решения, приведенные здесь ранее, не помогли, потому что я не написал никаких команд «икры». Оскорбительный код предположительно был написан Microsoft и скрыт под капотом программы VS Code.

Далее я заметил, что node.js называется node в Windows, но на Debian (и, предположительно, в системах на основе Debian, таких как Ubuntu), он называется nodejs. Поэтому я создал псевдоним — с корневого терминала, я побежал

и это решило проблему. Такая же или аналогичная процедура, по-видимому, будет работать в других случаях, когда ваш node.js называется nodejs, но вы запускаете программу, которая ожидает, что она будет называться node, или наоборот.

Ответ 14

У меня такая же ошибка для Windows 8. Проблема в том, что отсутствует переменная среды вашего системного пути. Добавьте значение «C:WindowsSystem32 » в переменную PATH вашей системы.

Ответ 15

Если вы работаете в Windows Node.js делает некоторые смешные дела при обработке котировок, которые могут привести к выдаче команды, которая, как вам известно, работает с консоли, но не выполняется при Node. Например, следующее должно работать:

но терпит неудачу. Там есть фантастически недокументированная опция windowsVerbatimArguments для обработки кавычек/подобных, которые, похоже, делают трюк, просто добавьте следующее к вашему объекту opts:

и ваша команда должна вернуться в бизнес.

Ответ 16

решение в моем случае

Ответ 17

npm install -g nodemon помог мне

Ответ 18

Я столкнулся с этой проблемой в Windows, где вызовы exec и spawn с одной и той же командой (без аргументов) работали нормально для exec (поэтому я знал, что моя команда была на $PATH ), но spawn будет дать ENOENT. Оказалось, что мне просто нужно добавить .exe к команде, которую я использовал:

Ответ 19

Вы меняете опцию env ?

Тогда посмотрите на этот ответ.

Я пытался порождать процесс узла и TIL, чтобы вы распространяли существующие переменные окружения при порождении, иначе вы потеряете переменную окружения PATH и, возможно, другие важные.

Это было исправление для меня:

Ответ 20

Если у вас возникла эта проблема с приложением, источник которого вы не можете изменить, подумайте о его вызове с переменной среды NODE_DEBUG , установленной в child_process , например, NODE_DEBUG=child_process yarn test . Это предоставит вам информацию о том, какие командные строки были вызваны в каком каталоге и, как правило, последняя деталь является причиной сбоя.

Ответ 21

Добавьте C:WindowsSystem32 в переменную среды path .

Действия

Перейдите на мой компьютер и свойства

Нажмите «Дополнительные настройки»

Затем в переменных среды

Выберите path , а затем нажмите на ссылку

Вставьте следующие, если они еще не присутствуют: C:WindowsSystem32

Закройте командную строку

Запустите команду, которую вы хотите запустить

Источник

Шаг 1: Убедитесь spawn называется правильно

во-первых, рассмотреть docs for child_process.spawn (command, args, options ):

запускает новый процесс с заданным command, с аргументами командной строки args. Если опущено,args по умолчанию пустой массив.

третий аргумент используется для указания дополнительных параметров, которые по умолчанию:

{ cwd: undefined, env: process.env }

использовать env чтобы указать переменные среды, которые будут видны новому процессу, значение по умолчанию process.env.

убедитесь, что вы не помещаете аргументы командной строки в command и все spawn вызов действителен. Переходим к следующему шагу.

Шаг 2: Определите источник событий, который выдает событие ошибки

поиск по исходному коду для каждого вызова spawn или child_process.spawn, то есть

spawn('some-command', [ '--help' ]);

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

spawn('some-command', [ '--help' ])
  .on('error', function( err ){ throw err })
;

выполнить и вы должны получить путь к файлу и номер строки, где ошибка ваш слушатель был зарегистрирован. Что-то вроде:

/file/that/registers/the/error/listener.js:29
      throw err;
            ^
Error: spawn ENOENT
    at errnoException (child_process.js:1000:11)
    at Process.ChildProcess._handle.onexit (child_process.js:791:34)

если первые две строки еще

events.js:72
        throw er; // Unhandled 'error' event

сделать этот шаг снова, пока они не. вы должны определить прослушиватель, который выдает ошибку, прежде чем перейти к следующему шагу.

Шаг 3: убедитесь, что переменная окружения $PATH установлен

есть два возможных сценария:

  1. вы полагаетесь на значение по умолчанию spawn поведение, поэтому среда дочернего процесса будет такой же, как process.env.
  2. вы явно передаете env объект spawn на options аргумент.

в обоих случаях необходимо проверить PATH ключ на объекте среды, который будет использовать порожденный дочерний процесс.

пример для случая 1

// inspect the PATH key on process.env
console.log( process.env.PATH );
spawn('some-command', ['--help']);

пример для сценария 2

var env = getEnvKeyValuePairsSomeHow();
// inspect the PATH key on the env object
console.log( env.PATH );
spawn('some-command', ['--help'], { env: env });

отсутствие PATH (т. е. это undefined) приведет к spawn для передачи ENOENT, так как это не будет возможно найти любой command если это абсолютный путь к исполняемому файлу.

, когда PATH правильно установлен, перейдите к следующему шагу. это должен быть каталог, или список директорий. Последний случай-обычный.

Шаг 4: Обеспечить command существует в каталоге тех, которые определены в PATH

икра может испускать ENOENT ошибка, если имя файла command (т. е. ‘some-command’) не существует по крайней мере в одном из каталогов, определенных на PATH.

найдите точное место command. В большинстве дистрибутивов linux это можно сделать с помощью терминала с . Он сообщит вам абсолютный путь к исполняемому файлу (как показано выше), или сказать, если он не найден.

пример использования которого и его вывод, когда команда нашел

> which some-command
some-command is /usr/bin/some-command

пример использования которого и его вывод, когда команда не нашел

> which some-command
bash: type: some-command: not found

Мисс-установленные программы являются наиболее распространенной причиной для не нашел. при необходимости обратитесь к документации по каждой команде и установите ее.

когда команда представляет собой простой файл сценария, убедитесь, что он доступен из каталога на PATH. если это не так, либо переместить его в одну или сделать ссылку на него.

как только вы определяете PATH правильно установлен и command is доступный из него, вы должны быть в состоянии породить свой детский процесс без spawn ENOENT быть брошенным.

Шаг 1: Убедитесь, что spawn называется правильным способом

Сначала просмотрите docs для child_process.spawn(команда, args, options):

Запускает новый процесс с заданным command с аргументами командной строки в args. Если опустить, args по умолчанию задает пустой массив.

Третий аргумент используется для указания дополнительных параметров, по умолчанию:

{ cwd: undefined, env: process.env }

Используйте env, чтобы указать переменные среды, которые будут видимы для нового процесса, по умолчанию это process.env.

Убедитесь, что вы не вставляете аргументы командной строки в command, а весь spawn вызов действителен. Перейдите к следующему шагу.

Шаг 2: Идентифицируйте событие, излучающее событие ошибки

Найдите исходный код для каждого вызова spawn или child_process.spawn, т.е.

spawn('some-command', [ '--help' ]);

и прикрепите там прослушиватель событий для события «error», чтобы вы заметили точный Event Emitter, который бросает его как «Unhandled». После отладки этот обработчик можно удалить.

spawn('some-command', [ '--help' ])
  .on('error', function( err ){ throw err })
;

Выполните, и вы должны получить путь к файлу и номер строки, где был зарегистрирован ваш прослушиватель ошибок. Что-то вроде:

/file/that/registers/the/error/listener.js:29
      throw err;
            ^
Error: spawn ENOENT
    at errnoException (child_process.js:1000:11)
    at Process.ChildProcess._handle.onexit (child_process.js:791:34)

Если первые две строки все еще

events.js:72
        throw er; // Unhandled 'error' event

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

Шаг 3. Убедитесь, что переменная среды $PATH установлена ​​

Возможны два сценария:

  • Вы полагаетесь на поведение по умолчанию spawn, поэтому дочерняя среда процесса будет такой же, как process.env.
  • Вы — экспликация, передающая объект env на spawn в аргументе options.

В обоих сценариях вы должны проверить ключ PATH на объекте среды, который будет использовать дочерний процесс, созданный.

Пример сценария 1

// inspect the PATH key on process.env
console.log( process.env.PATH );
spawn('some-command', ['--help']);

Пример сценария 2

var env = getEnvKeyValuePairsSomeHow();
// inspect the PATH key on the env object
console.log( env.PATH );
spawn('some-command', ['--help'], { env: env });

Отсутствие PATH (т.е. it undefined) приведет к тому, что spawn испустит ошибку ENOENT, так как не удастся найти какой-либо command, если только это абсолютный путь к исполняемому файлу.

Когда PATH установлен правильно, перейдите к следующему шагу. Это должен быть каталог или список каталогов. Последний случай является обычным.

Шаг 4: Убедитесь, что command существует в каталоге тех, которые определены в PATH

Spawn может испускать ошибку ENOENT, если имя файла command (т.е. ‘some-command’) не существует, по крайней мере, в одном из каталогов, определенных в PATH.

Найдите точное место command. В большинстве дистрибутивов Linux это можно сделать с терминала с помощью команды which. Он укажет вам абсолютный путь к исполняемому файлу (например, выше) или сообщите, не найден ли он.

Пример использования которого и его вывод, когда команда найдена

> which some-command
some-command is /usr/bin/some-command

Пример использования которого и его вывод, когда команда не найдена

> which some-command
bash: type: some-command: not found

прошитые программы являются наиболее распространенной причиной для не найденной команды. Обратитесь к каждой документации команды, если необходимо, и установите ее.

Когда команда представляет собой простой файл script, убедитесь, что он доступен из каталога в PATH.. Если это не так, переместите его на один или создайте для него ссылку.

После того, как вы определили PATH правильно установленный и command доступен из него, вы сможете запустить дочерний процесс без spawn ENOENT.

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Ошибка f01 на стиральной машине аристон hotpoint ariston
  • Ошибка error spawn run exe enoent
  • Ошибка esp off
  • Ошибка f01 на стиральной машине leran что значит
  • Ошибка error spawn run exe eacces

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии