运行 上电子包中的 SPAWN 节点 ENOENT 错误
SPAWN node ENOENT error in electron package on run
我构建了一个 node.js、express.js 应用程序、electron 应用程序和操作系统 Windows。我已经通过教程打包了electron app:How to package an electron app
win32打包成功,无任何警告或错误。
但是,当我尝试 运行 dist 文件夹中的 app.exe 文件时,虽然主应用程序 window 出现了,但我看不到 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 app in electron 运行 打包前正常运行。应用程序打包后没有从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()
})
我们将不胜感激。
我找到了一个不需要 SPAWN 的解决方案,在 Node.js、Express.js 和 Electron 的应用程序中。即使在打包 electron 应用程序后也能完美运行。
这里是 link 到它的 GitHub 存储库:
GitHub repository for the solution's boilerplate.
要记住的一件事是,在通过像 electron-builder 这样的第三方打包器打包 electron 应用程序后,有必要将 config.json 文件放入存在打包文件的新 distribution/dist 文件夹,否则它会在应用程序执行时抛出 config.json 未找到错误。
您可以使用 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
完美运行
我构建了一个 node.js、express.js 应用程序、electron 应用程序和操作系统 Windows。我已经通过教程打包了electron app:How to package an electron app
win32打包成功,无任何警告或错误。
但是,当我尝试 运行 dist 文件夹中的 app.exe 文件时,虽然主应用程序 window 出现了,但我看不到 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 app in electron 运行 打包前正常运行。应用程序打包后没有从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()
})
我们将不胜感激。
我找到了一个不需要 SPAWN 的解决方案,在 Node.js、Express.js 和 Electron 的应用程序中。即使在打包 electron 应用程序后也能完美运行。
这里是 link 到它的 GitHub 存储库:
GitHub repository for the solution's boilerplate.
要记住的一件事是,在通过像 electron-builder 这样的第三方打包器打包 electron 应用程序后,有必要将 config.json 文件放入存在打包文件的新 distribution/dist 文件夹,否则它会在应用程序执行时抛出 config.json 未找到错误。
您可以使用 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
完美运行