我使用扩展API创建vscode命令来启动GUI程序。
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');
通过命令react-devtools
,它也可以在vscode的集成终端中正常工作。
以上所有代码均在Mac上运行。
出什么问题了? vscode扩展中的节点环境与常规节点之间是否有任何区别?
答案 0 :(得分:0)
通过取消设置ELECTRON_RUN_AS_NODE
环境变量来解决问题:
exec('react-devtools', {env: {...process.env, ELECTRON_RUN_AS_NODE:''}}, (err, stdout) => {
console.log('result', err, stdout);
});