gpt4 book ai didi

node.js - 使用 Electron-packager 时,我们可以在没有安装 Node 的 Mac 上启动 Node 命令吗?

转载 作者:太空宇宙 更新时间:2023-11-03 22:59:28 26 4
gpt4 key购买 nike

当我使用 Electron 打包器打包 Electron 应用程序时。该应用程序生成一个使用“node”命令的子进程。现在,如果我尝试在未安装 Node 的系统中启动我的应用程序,该应用程序可以工作吗?

我一直在努力实现这一目标,但面临各种问题, Electron 社区建议我使用 fork 方法、spawn 方法以及“Process.execPath”作为命令,并设置 ELECTRON_RUN_AS_NODE 变量,但似乎对我来说没有任何作用。

现在,完成所有这些操作后,我问自己,我是否确实需要在系统上安装 Node 才能运行该应用程序?或者是否真的有一种方法可以将父环境(我相信有 Node )传递给子进程?如果是的话我在这里缺少什么?

需要注意的是,当从 GUI 应用程序运行时,我使用“fixpath()”在 macOS 上设置 $PATH。不确定这是否会扰乱我的代码中的某些内容。 https://www.npmjs.com/package/fix-path

请在下面找到我的代码:

'use strict'
const fixPath = require('fix-path');

let func = () => {
fixPath();
const child = childProcess.exec('node scriptPath --someFlags', {
detached: true,
stdio: 'ignore',
env: {
ELECTRON_RUN_AS_NODE: 1,
}
});
child.on('error', (err) => {
console.log("\n\t\tERROR: spawn failed! (" + err + ")");
});

child.stderr.on('data', function(data) {
console.log('stdout: ' +data);
});

child.on('exit', (code, signal) => {
console.log(code);
console.log(signal);
});

child.unref();
}

最佳答案

是的,我们可以运行一个打包的应用程序,即使在没有安装 Node 的系统上也可以运行子 Node 进程。可以使用“fork”方法并通过设置 ELECTRON_RUN_AS_NODE 环境变量来运行 Node 进程。请查找下面的示例代码。

 let func = () => {
const child = childProcess.fork(path, args,
{
detached: true,
stdio: 'ignore',
env: {
ELECTRON_RUN_AS_NODE: 1
}
}

});

child.on('error', (err) => {
console.log("\n\t\tERROR: spawn failed! (" + err + ")");
});

child.on('exit', (code, signal) => {
console.log(code);
console.log(signal);
});

child.unref();

关于node.js - 使用 Electron-packager 时,我们可以在没有安装 Node 的 Mac 上启动 Node 命令吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51771754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com