自己的js逻辑代码的Vite-Electron配置

问题描述 投票:0回答:1

我是 Electron-vite 和 React 的新手。我的项目有一个http节点服务器进程。所有相关文件都放置在服务器命名的文件夹中。 vite文件夹结构为main、renderer和preload。我已将服务器文件夹放在 src 中,这意味着它是主文件夹、渲染器文件夹、预加载文件夹和服务器文件夹。 server.js 位于服务器文件夹中。下面是失败的代码行

serverProcess = fork(path.join(__dirname, '../sync/server.js'), {
    env: { PORT: 9090 }
  })

失败了,

Cannot find module 'D:\codebase\syncer\out\server\server.js
package.json 有
"main": "./out/main/index.js",
它尝试在 out 文件夹中查找服务器代码。我不知道要提到什么(配置)来使用服务器文件夹中的所有文件夹和文件。平台是windows 11。请帮助我。

windows electron vite electron-builder electron-vite
1个回答
0
投票

一种方法是使用电子构建器配置中的

extraResources
将服务器文件夹复制到最终版本中:

"build": {
  "extraResources": [
    { "from": "server", "to": "server" }
  ]
}

然后可以通过检查它是开发还是生产来引用脚本:

const isDev = process.env.NODE_ENV === 'development';
const serverPath = isDev
  ? path.join(__dirname, '../server/server.js')
  : path.join(process.resourcesPath, 'server', 'server.js');

const serverProcess = fork(serverPath, { env: { PORT: 9090 } });

这样,

server.js
就包含在构建中,防止出现“找不到模块”错误。

© www.soinside.com 2019 - 2024. All rights reserved.