visual-studio-code - 无法在 vscode 命令上下文中启动 GUI 程序
问题描述
我使用扩展 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');
它也可以在带有 command 的 vscode 的集成终端中正常工作react-devtools
。
上面的所有代码都是在 Mac 上运行的。
有什么问题?vscode 扩展中的节点环境和普通节点有什么区别吗?
解决方案
ELECTRON_RUN_AS_NODE
通过取消设置环境变量解决的问题:
exec('react-devtools', {env: {...process.env, ELECTRON_RUN_AS_NODE:''}}, (err, stdout) => {
console.log('result', err, stdout);
});
推荐阅读
- amazon-web-services - 备份 AWS 账户中的每个资源
- amazon-s3 - keras 使用 python 将序列化的权重 HDF5 保存到 AWS s3
- css - 如何在这个 Bootstrap 3 网格中让 div 彼此居中?
- c++ - 在 C++ 中使用 setw 对齐输出列
- php - 即使 PHP 文件被删除,Apache 也会永远加载
- html - 如何使 HTML 表格行在 Haml 中具有相同的大小
- php - Laravel 6.16 购物车
- c# - SqlException:INSERT 语句与 FOREIGN KEY 约束冲突数据库表列发生冲突
- python - 字符串 -> ASCII+1 -> 位串
- html - 外部有序列表的样式编号