【问题标题】:Cannot execute shell command from Electron packaged app无法从 Electron 打包的应用程序执行 shell 命令
【发布时间】:2018-07-03 09:36:25
【问题描述】:

我有我的 Electron 应用程序,我用 electron-packager npm 模块打包。 我只想从名为 child_process 的 Nodejs 模块中按名称执行 python 应用程序。当应用程序未打包时它可以工作,但是当我打包它时它不起作用。我注意到打包的应用程序不会加载 PATH 变量,因此它只有在我将其更改为脚本的绝对路径时才有效。但我想让它独立于平台,所以它不是我的解决方案。

有什么方法可以将 PATH 变量“注入”到打包的应用程序或任何其他解决方案中?

【问题讨论】:

    标签: node.js electron electron-packager


    【解决方案1】:

    这可能是this PATH issue

    您可以使用this package 修复它。

    const fixPath = require('fix-path');
    
    fixPath();
    
    console.log(process.env.PATH);
    //=> '/usr/local/bin:/usr/bin'
    

    【讨论】:

      【解决方案2】:

      您是否使用spawn 剥离您的子进程?如果是这样,那是在没有 shell 的情况下启动的,因此没有PATH。但是,您可以强制它使用 shell。

      const myCmd = spawn('ls', args, { shell: true });

      或者,您可以使用exec,它可以在 shell 中运行。 Here's an article 深入了解差异。

      【讨论】:

        猜你喜欢
        • 2017-02-19
        • 1970-01-01
        • 1970-01-01
        • 2012-05-28
        • 2014-03-06
        • 1970-01-01
        • 1970-01-01
        • 2020-02-22
        • 2018-02-13
        相关资源
        最近更新 更多