首页 > 解决方案 > 如何通过 pkg 在一个 exe 文件中构建静态服务器和 websocket 服务器

问题描述

我想将静态资源服务器和 websocket 服务器构建到一个 exe 文件中。使用开源包pkg。但官方文档没有例子。

我有一个 web 应用程序和一个 websocket 服务器,用于演示,它应该在没有 node.js 环境的 pc 上运行。因此,最佳做法是将这些构建为 .exe 文件。

 {
  "bin": "server/index.js",
  "pkg": {
    "assets": [
      "built/**/*"
    ]
  }
}

看起来不错,但我不知道如何配置 websocket 服务器。对于终端结果,单击 .exe 文件,它有两个窗口:一个用于静态资源服务器,另一个用于 websocket 服务器

标签: websocketstaticresource

解决方案


问题已解决。

代码:

// static resource server
app.use('/', express.static(__dirname + '/built/packaged/'));

app.get('/', function (req, res) {
  res.sendFile(__dirname + '/views/index.html', err => console.log(err));
});

然后,嵌入 child_process 以打开一个新的 websocket 服务器:

const child_process = require('child_process');
child_process.exec(`node ./my-websocket.js --direction="C:/Users/"`, (err, stdout, 
  stderr) =>  { // ...});

推荐阅读