Ayanokouji__ 2025-11-03 09:37 采纳率: 16.7%
浏览 5

这是哪个地方没有配置导致的问题,如何解决?(标签-electron|关键词-set)

在electron-vite的项目中,vue文件使用worker在开发环境下可以正常的触发worker内部的代码,但是在打包后的生产环境无法执行相关代码,使用控制台内部的源码查询无法找到相关的源码文件

import PainterManager from "../utils/painterManager?worker";

const painterManager = new PainterManager();

这是开发环境下的

img


这是生产环境下的

img

没有文件,然后再out/renderer/assets文件夹内可以查询构建之后的js文件

img

这是哪个地方没有配置导致的问题

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-11-03 09:50
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    问题分析

    根据你的描述,问题出在electron-vite项目中,vue文件使用worker在开发环境下可以正常工作,但是在打包后的生产环境中无法执行相关代码。这个问题可能与electron的打包机制有关。

    解决方案

    electron-vite项目中,需要在electron-builder的配置文件中,添加nodeIntegrationcontextIsolation的配置,来解决worker在生产环境下无法执行代码的问题。

    // electron-builder配置文件
    {
      "build": {
        "nodeIntegration": true,
        "contextIsolation": false
      }
    }
    

    此外,还需要在electron的main.js文件中,使用contextBridge来暴露worker的接口,来让electron的主进程能够与worker通信。

    // main.js
    const { contextBridge, ipcRenderer } = require('electron');
    
    contextBridge.exposeInMainWorld('workerApi', {
      // worker接口
    });
    

    注意

    在electron-vite项目中,需要使用electron-builder来打包electron应用,才能解决worker在生产环境下无法执行代码的问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月3日