Electron with React:如何设置生产网络服务器
Electron with React: how to setup production webserver
我有一个 electron 应用程序,它加载了运行在 webpack-dev-server 端口 8080 上的 React 应用程序。React 应用程序正在与端口 9001 上的节点服务器应用程序通信。如何在生产环境中设置网络服务器?我现在正在尝试的是通过安装后脚本单独安装节点。所以 electron 使用自己打包的 node 版本,webpack-dev-server 使用另一个版本的 node,通过脚本安装。我觉得这不是正确的方法。我如何为 webpack-dev-server 使用 electron 版本的节点?是否可以让它只使用 electron 和 webpack-dev-server 的打包版本的节点?谢谢
由于 windows 上的安装后问题,通过 deb 依赖项安装节点的想法并不好 - 在 windows 上编写要安装的依赖项并不容易。相反,我下载了节点二进制文件并将节点二进制文件打包到 asar 包中。
我使用 files 选项仅打包用于平台构建的二进制文件是 运行 on:
package.json:
"build": {
"asarUnpack": [
"**/*"
],
"files": [
"!binaries",
"binaries/${os}/${arch}/node",
"src",
"*.html",
"*.js",
"*.tpl",
"*.sh",
"*.json",
"*.md",
"*.lock"
],
感谢 asarUnpack 选项,我解压了 asar 包,我能够访问文件系统上的节点二进制文件。然后在主进程中 index.js 我以这种方式构建节点路径:
const nodePath = path.join(
process.resourcesPath,
"app.asar.unpacked",
'binaries',
platform == "win32" ? "win" : platform,
arch,
"node"
)
const productionWebpackServerStartPathArgs = [`${process.resourcesPath}/app.asar.unpacked/node_modules/webpack-dev-server/bin/webpack-dev-server.js`, '--config', `${process.resourcesPath}/app.asar.unpacked/webpack.config.js`];
let webpack_dev_server_cmd = crossSpawn(nodePath, productionWebpackServerStartPathArgs );
我有一个 electron 应用程序,它加载了运行在 webpack-dev-server 端口 8080 上的 React 应用程序。React 应用程序正在与端口 9001 上的节点服务器应用程序通信。如何在生产环境中设置网络服务器?我现在正在尝试的是通过安装后脚本单独安装节点。所以 electron 使用自己打包的 node 版本,webpack-dev-server 使用另一个版本的 node,通过脚本安装。我觉得这不是正确的方法。我如何为 webpack-dev-server 使用 electron 版本的节点?是否可以让它只使用 electron 和 webpack-dev-server 的打包版本的节点?谢谢
由于 windows 上的安装后问题,通过 deb 依赖项安装节点的想法并不好 - 在 windows 上编写要安装的依赖项并不容易。相反,我下载了节点二进制文件并将节点二进制文件打包到 asar 包中。 我使用 files 选项仅打包用于平台构建的二进制文件是 运行 on:
package.json:
"build": {
"asarUnpack": [
"**/*"
],
"files": [
"!binaries",
"binaries/${os}/${arch}/node",
"src",
"*.html",
"*.js",
"*.tpl",
"*.sh",
"*.json",
"*.md",
"*.lock"
],
感谢 asarUnpack 选项,我解压了 asar 包,我能够访问文件系统上的节点二进制文件。然后在主进程中 index.js 我以这种方式构建节点路径:
const nodePath = path.join(
process.resourcesPath,
"app.asar.unpacked",
'binaries',
platform == "win32" ? "win" : platform,
arch,
"node"
)
const productionWebpackServerStartPathArgs = [`${process.resourcesPath}/app.asar.unpacked/node_modules/webpack-dev-server/bin/webpack-dev-server.js`, '--config', `${process.resourcesPath}/app.asar.unpacked/webpack.config.js`];
let webpack_dev_server_cmd = crossSpawn(nodePath, productionWebpackServerStartPathArgs );