簡體   English   中英

電子封裝在運行時出現SPAWN節點ENOENT錯誤

[英]SPAWN node ENOENT error in electron package on run

我已經在Windows操作系統中構建了一個node.js,express.js應用程序,electron應用程序。 我已經通過以下教程打包了電子應用程序: 如何打包電子應用程序

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>

現在 ,打包前電子中的node.js,express.js應用程序可以正常運行。 打包后,該應用程序無法從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()
  })

任何幫助將不勝感激。

我在帶有Node.js,Express.js和Electron的應用程序中找到了不需要SPAWN的解決方案。 甚至在打包了電子應用程序之后,效果也很好。

這是其GitHub存儲庫的鏈接:

解決方案樣板的GitHub存儲庫。

要記住的一件事是,在通過第三方打包程序(例如, electron-builder)將電子應用程序打包后,有必要將config.json文件放入存在打包文件的新分發目錄中,否則會拋出config.json而不是在執行應用程序時發現錯誤。

您可以使用exec使用以下代碼:

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

在我的情況下,路徑/到/節點=> / usr / local / bin / node

完美運作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM