Vite + Electron - 如何将外部项目添加为子进程

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

在我的主项目文件中,我添加了一个目录“/api”,其中包含JS中的API文件。 我可以成功运行该项目,但只能在开发模式下运行(

npm run dev
)。当我运行
npm run build:win
时,它不起作用。

import { app, shell, BrowserWindow, ipcMain } from 'electron'
import { fork } from 'child_process'
import { join } from 'path'
import { electronApp, optimizer, is } from '@electron-toolkit/utils'

fork('api/main.js') //<- works ok only in dev

function createWindow(): void {
  // Create the browser window.
  const mainWindow = new BrowserWindow({
    width: 370,
    height: 600,
    show: false,
    autoHideMenuBar: true,
    webPreferences: {
      preload: join(__dirname, '../preload/index.js'),
      sandbox: false
    }
  })

引用这些文件的正确方法是什么?我是否需要在配置中添加一些内容才能将我的 API 文件夹包含在最终版本中?

electron vite assets child-process
1个回答
0
投票

生产中

__dirname
将解析为ASAR。 为了解决这个问题,如果应用程序已打包,请使用
app.getAppPath()

const { app } = require('electron');

const rootPath = app.isPackaged ? app.getAppPath() : __dirname;
© www.soinside.com 2019 - 2024. All rights reserved.