当前位置: 首页 > 知识库问答 >
问题:

Electronic with React:如何建立生产Web服务器

柴兴修
2023-03-14

我有Electronic应用程序,它装载React应用程序,运行在端口8080上的webpack-dev-server上。React应用程序正在端口9001上与节点服务器应用程序通信。如何在生产中设置webserver?我现在尝试的是通过postinstall脚本分别安装节点。所以Electronic使用自己的node打包版本,webpack-dev-server使用另一个版本的node,通过脚本安装。我觉得这不是正确的方式。如何使用电子版本的node for webpack-dev-server?是否有可能使它只对电子和webpack-dev-server使用node的打包版本?谢谢

共有1个答案

谯振国
2023-03-14

由于windows上的后安装问题,通过deb依赖项安装node的想法并不是很好--在windows上编写依赖项来安装不是那么容易的。相反,我下载了节点二进制文件,并将节点二进制文件打包到asar包中。我使用files选项仅打包用于平台构建正在运行的二进制文件:

package.json:

"build": {
    "asarUnpack": [
      "**/*"
    ],
    "files": [
      "!binaries",
      "binaries/${os}/${arch}/node",
      "src",
      "*.html",
      "*.js",
      "*.tpl",
      "*.sh",
      "*.json",
      "*.md",
      "*.lock"
    ],

多亏了asarUnpack选项,我解压缩了asar包,并且能够访问文件系统上的节点二进制。然后,在main process 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 );
 类似资料:
  • 在workerman中建立udp服务很简单,类似如下代码 $udp_worker = new Worker('udp://127.0.0.1:9090'); $udp_worker->onMessage = function($connection, $data){ var_dump($data); $connection->send('get'); }; Worker::runA

  • 本文向大家介绍Nodejs如何搭建Web服务器,包括了Nodejs如何搭建Web服务器的使用技巧和注意事项,需要的朋友参考一下 使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块、文件系统、url解析模块、路径解析模块、以及301重定向问题,下面我们就简单讲一下如何来搭建一个简

  • 我还没有REST API的经验,所以请原谅,如果我是混合术语。 现在,我正试图了解哪些是我的相关文档,我正在考虑两种选择: > 这里列出的方法-https://nl.mathworks.com/help/matlab/internet-file-access.html?s_tid=crux_lftnav都与RESTful Web服务有关。我还不知道客户机是否有一个可以归类为web服务的REST A

  • 在workerman中建立udp服务很简单,类似如下代码 $udp_worker = new Worker('udp://127.0.0.1:9090'); $udp_worker->onMessage = function($connection, $data){ var_dump($data); $connection->send('get'); }; Worker::runA

  • 我使用PHP-S127.0.0.1:4242命令在本地主机上为php文件启动development server。但我想,我不应该在生产中使用这个东西。目前我正在尝试在VPS上设置我的网站,我不知道如何在端口4242上永远使用ssh启动php服务器。我知道,这可能是很愚蠢的问题,这是我第一次与真正的主持工作 如有任何帮助,我将不胜感激:)

  • (这个问题的灵感来自对此线程的响应:WebSocket 服务器如何处理多个传入的连接请求? 我的理解是这样的: 假设客户端 IP = 1.1.1.1,服务器 IP = 9.9.9.9 > 浏览器选择一个随机的本地可用端口,例如 5555,并启动与服务器端口 80 的连接。因此,在客户端上,应表示 IP 连接,例如 (1.1.1.1 服务器在其端口80上调用并识别来自客户端的连接请求。然后服务器选择