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

相关推荐
不可能片场17 小时前
Electron 发布 cookie 库先查明文再写解密
前端·electron
又过二十1 天前
用 Electron 做的 AI 视频切片工作台:VClip 的技术选型与踩坑实录
ai·electron·aigc·funasr·视频切片
不可能片场3 天前
工程实践 日志文件名是北京日期 内容却是 UTC
前端·electron
不可能片场7 天前
工程实践 台账备份从全量复制改成增量日志
前端·electron
林恒smileZAZ7 天前
用 Vue 3 + Electron 做桌宠:从启动退出到拖拽、单击与鼠标穿透
vue.js·electron·计算机外设
非常好吃的糖8 天前
Windows 桌面端的语音唤醒:从「识别出文字」到「识别出唤醒词」
electron
Suprman9 天前
从 B/S 到 Electron:平面排版套料系统桌面版开发实战
javascript·平面·electron·排序算法
不可能片场11 天前
工程实践 一个缓存把选片从十分钟压到一分钟
前端·electron
lemon_sjdk12 天前
从一段真实的 Electron IM 前端代码,看高级前端的工程化修养
前端·electron·状态模式·im
优选资源分享12 天前
PicGo v3.0.3 新版 | 开源免费图床工具
javascript·笔记·electron