Vue3项目改造为electron桌面端

第一步 先下载依赖

pnpm install--save-dev electron electron-builder
pnpm install vite-plugin-electron

第二步 根目录创建electron文件夹,放入index.js

js 复制代码
```import { app, BrowserWindow } from "electron";
import path from "path";
import { fileURLToPath } from "url";

const __dirname = path.dirname(fileURLToPath(import.meta.url));

let mainWindow;

async function createWindow() {
  mainWindow = new BrowserWindow({
    width: 1200,
    height: 800,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation: false
    }
  });

  if (process.env.NODE_ENV === "development") {
    // 根据自己地址修改
    await mainWindow.loadURL("http://localhost:8848");
    mainWindow.webContents.openDevTools();
  } else {
    await mainWindow.loadFile(path.join(__dirname, "../dist/index.html"));
  }
}

app.whenReady().then(createWindow);

app.on("window-all-closed", () => {
  if (process.platform !== "darwin") app.quit();
});

app.on("activate", () => {
  if (mainWindow === null) createWindow();
});

第三步 添加vite插件

第四步 根目录创建electron.config.json

当然也可以直接修改vite.config.ts中build的配置,这里选择新创建json

js 复制代码
{
  "appId": "com.example.vue-electron",
  "productName": "viteElectron",
  "npmRebuild": false, // 关键:禁止自动重建原生模块
  "files": [
    "dist/**/*",
    "electron/**/*",
    "!**/node_modules",
    {
      "from": "node_modules/canvas/build/Release",
      "to": "resources/node_modules/canvas/build/Release" // 手动包含编译后的二进制文件
    }
  ],
  "directories": {
    "output": "release",
    "buildResources": "public"
  },
  "win": {
    "t添加脚本命令
    arget": ["nsis", "portable"],
    "icon": "public/icon.ico",
    "artifactName": "${productName}-${version}-${arch}.${ext}",
    "extraResources": [
      // 确保原生模块被打包
      {
        "from": "node_modules/canvas/build/Release",
        "to": "app.asar.unpacked/node_modules/canvas/build/Release"
      }
    ]
  },
  "nsis": {
    "oneClick": false,
    "perMachine": false,
    "allowToChangeInstallationDirectory": true
  },
  "asar": false, // 禁用 asar 以便原生模块能正确加载
  "buildDependenciesFromSource": false, // 禁止从源码构建依赖
  "nodeGypRebuild": false // 双重保险:禁用 node-gyp 重建
}

第五步 package.json添加脚本命令及main

检查是否生效

开发环境需要先正常启动项目再执行桌面端
pnpm run electron:serve

生产环境

修改根目录下electron/index的地址为目标地址后会生成release的一个文件夹,根据目录安装即可
pnpm run electron:build

相关推荐
梵尔纳多4 小时前
Electron 主进程和渲染进程通信
javascript·arcgis·electron
多看书少吃饭12 小时前
Electron 桌面应用打开录音功能导致页面蓝屏问题解决方案
javascript·electron·策略模式
黑臂麒麟1 天前
Electron for OpenHarmony 跨平台实战开发:Electron 文件系统操作实战
前端·javascript·electron·openharmony
子榆.2 天前
【2025 最新实践】Flutter 与 OpenHarmony 的“共生模式”:如何构建跨生态应用?(含完整项目架构图 + 源码)
flutter·华为·智能手机·electron
粉末的沉淀5 天前
jeecgboot:electron桌面应用打包
前端·javascript·electron
fruge6 天前
Electron 桌面应用开发:前端与原生交互原理及性能优化
前端·electron·交互
UpgradeLink7 天前
Electron 项目使用官方组件 electron-builder 进行跨架构打包
前端·javascript·electron
UpgradeLink7 天前
开源Electron应用GitHubActions自动化部署与升级指南
electron·开源·自动化
UpgradeLink7 天前
Electron项目使用electron-updater与UpgradeLink接入参考
开发语言·前端·javascript·笔记·electron·用户运营