我正在尝试弄清楚如何使用 Electron。一切都很好,但我有一个问题。
我有:
我的行动:
主要负责人:
import { ipcMain } from 'electron';
import { exec } from 'node:child_process';
ipcMain.handle(
'run-command',
async (
_event,
{
path,
command,
}: {
path: string;
command: string;
},
) =>
new Promise((resolve, reject) => {
exec(command, { cwd: path }, (error, stdout, stderr) => {
if (error) {
reject(new Error(`Command failed: ${command}\n${stderr}`));
return;
}
resolve(stdout);
});
}),
);
但是由于节点版本错误,该命令返回错误。 我想使用操作系统的默认节点版本 (18.18.2),但应用程序使用旧版本 (11.5.0)。
是否可以为任何项目使用不同的node.js版本? 我只想在项目的上下文中运行一些命令,就像在终端中手动运行一样。
有人可以解释一下,我该怎么做吗?感谢您的关注和建议!
解决方案在这里: 子进程中的 nvm
exec("source path/to/nvm.sh && nvm use 14 && mycommand")
就我而言,没有 nvm.sh (我不知道为什么),所以我重新安装了它,它就出现了。