Не удается запустить программу с графическим интерфейсом в контексте команды vscode - PullRequest
0 голосов
/ 05 июля 2019

Я использую API расширения для создания команды vscode для запуска программы с графическим интерфейсом.

vscode.commands.registerCommand('rnk.inspect', () => {
    require('child_process').exec('react-devtools', (err, stdout) => {
        console.log('result', err, stdout)
    })
});

Но когда я запускаю эту команду, я получаю вывод:

result Error: Command failed: react-devtools
extension.js:22
    at ChildProcess.exithandler (child_process.js:287:12)
    at emitTwo (events.js:126:13)
    at ChildProcess.emit (events.js:214:7)
    at maybeClose (internal/child_process.js:925:16)
    at Socket.ChildProcess.spawn.stream.socket.on (internal/child_process.js:346:11)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    at Pipe.Socket._destroy.cb._handle.close [as _onclose] (net.js:554:12) 

Я установил react-devtools, и следующий код работает как автономное приложение узла:

const child_process = require('child_process');
child_process.exec('react-devtools');

Он также корректно работает во встроенном терминале vscode с помощью команды react-devtools.

Весь приведенный выше код запускается на Mac.

В чем проблема? Есть ли различия между средой узла в расширении vscode и обычным узлом?

1 Ответ

0 голосов
/ 10 июля 2019

Проблема решена путем сброса переменной окружения ELECTRON_RUN_AS_NODE:

exec('react-devtools', {env: {...process.env, ELECTRON_RUN_AS_NODE:''}}, (err, stdout) => {
    console.log('result', err, stdout);
});

См .: https://github.com/microsoft/vscode/issues/76673

...