[英]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存儲庫的鏈接:
要記住的一件事是,在通過第三方打包程序(例如, 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.