【问题标题】:SPAWN node ENOENT error in electron package on run运行时电子包中的 SPAWN 节点 ENOENT 错误
【发布时间】:2018-01-21 22:11:37
【问题描述】:

我已经在 Windows 操作系统中构建了一个 node.js、express.js 应用、electron 应用。我已经通过教程打包了electron app:How to package an electron app

打包到win32成功,没有任何警告或错误。
但是,当我尝试从 dist 文件夹运行 app.exe 文件时,虽然显示了主应用程序窗口,但我看不到 express.js 应用程序文件夹中的任何内容。
我的应用文件夹结构是:

app-root<br>
  - express-app
    - bin
      - www
    - node_modules
    - public
    - routes
    - views
    - app.js
    - package.json
  - node_modules
  - build
  - index.html
  - main.js
  - package.json
  - start-electron.js
  - dist<br>

现在 打包前electron中的node.js、express.js app运行正常。打包后应用无法从 exe 文件运行。

这是包 .exe 文件的控制台错误:

events.js:163 Uncaught Error: spawn node ENOENT
at exports._errnoException (util.js:1050:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
at onErrorNT (internal/child_process.js:367:16)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickCallback (internal/process/next_tick.js:104:9)

我在 index.html 中有 SPAWN 函数:

  spawn = require("child_process").spawn,
  app = require('electron').remote.app,
  node = spawn("node", ["./express-app/bin/www"], {
    cwd: app.getAppPath()
  })

我们将不胜感激。

【问题讨论】:

    标签: javascript node.js express electron-builder


    【解决方案1】:

    我在包含 Node.js、Express.js 和 Electron 的应用程序中找到了不需要 SPAWN 的解决方案。即使在打包电子应用程序后也能正常工作。

    这里是它的 GitHub 存储库的链接:

    GitHub repository for the solution's boilerplate.

    要记住的一点是,通过 electron-builder 等第三方打包程序打包电子应用程序后,需要将 config.json 文件放入打包文件所在的新分布/dist 文件夹中存在,否则会在应用程序执行时抛出 config.json not found 错误。

    【讨论】:

      【解决方案2】:

      您可以通过 exec 使用以下代码:

      const exec = require('child_process').exec;
      const node = exec("path/to/node " + app.getAppPath() + 'YOUR_APP', (err, stdout) => {console.log(stdout)});
      

      path/to/node 在我的例子中 => /usr/local/bin/node

      效果很好

      【讨论】:

        猜你喜欢
        • 2016-12-28
        • 2020-02-11
        • 2013-09-26
        • 1970-01-01
        • 2015-12-15
        • 2022-12-30
        • 2022-08-22
        • 2016-07-08
        • 2014-12-18
        相关资源
        最近更新 更多