npm: команда не найдена при выполнении команд в приложении Electron - PullRequest
1 голос
/ 29 марта 2019

Я работаю над электронным приложением, и внутри приложения я выполняю команды оболочки, используя child_process.exec.Одна из команд, которые я запускаю, - npm run start;это прекрасно работает в среде разработчиков, но когда я создаю приложение для работы, все команды npm не работают, и отображается следующая ошибка:

   Error: Command failed: npm run start
   /bin/sh: npm: command not found


    at ChildProcess.exithandler (child_process.js:287)
    at emitTwo (events.js:126)
    at ChildProcess.emit (events.js:214)
    at maybeClose (internal/child_process.js:925)
    at Socket.stream.socket.on (internal/child_process.js:346)
    at emitOne (events.js:116)
    at Socket.emit (events.js:211)
    at Pipe._handle.close [as _onclose] (net.js:554)

Я попытался запустить приложение в режиме отладки, выполнив следующую команду open MyApp.app/Contents/MacOS/MyApp и команды npm успешно выполняются без ошибок.

В чем может быть проблема?

1 Ответ

1 голос
/ 29 марта 2019

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

Чтобы решить эту проблемупроблема, я использовал этот пакет fix-path .Я установил пакет и добавил следующий фрагмент вверху файла

if (process.env.NODE_ENV === 'production') {
  const fixPath = require('fix-path');

  fixPath();
}

. Я пришел к этому ответу после прохождения этой проблемы на GitHub.Благодаря @ Seblor

...