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

相关推荐
明快de玄米613 小时前
Electron学习文档
学习·electron·vim
爱丶不疚3 天前
Electron net 模块你可以没用过,但不能不知道
前端·electron
瑞码空间7 天前
Web应用的多端部署之道:浏览器 · Electron · Docker
前端·docker·electron·浏览器·web
upgrador15 天前
桌面应用开发:Electron 与 NSIS 的关系、打包流程及 Windows 本地构建实战
javascript·windows·electron
盒子里的加菲猫16 天前
什么?不会C语言也可以搭建窗口级应用程序?(Electron)
c语言·开发语言·electron
薛定谔的猫-菜鸟程序员18 天前
基于 Electron 的本地短视频解析与下载工具:架构设计与工程实践
java·electron·音视频
imber18 天前
别把多平台发布当复制粘贴:一套可复用的内容工程工作流
electron
imber19 天前
Visual Muse 三平台真实发布验收
electron
前端逗比逗19 天前
Electron 全维度完整配置手册(最新稳定版,适配 Electron 25+)
前端·electron
寒水馨22 天前
Windows下载、安装electron-v43.2.0(附安装包electron-v43.2.0-win32-x64.zip)
javascript·windows·typescript·electron·跨平台·桌面应用·chromium