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

相关推荐
小左OvO1 小时前
叫板要干翻 typora 的 milkup 现在怎么样了?
electron·markdown
ccnocare1 天前
window.electronAPI.send、on 和 once
前端·electron
可口码农3 天前
MixOne:Electron Remote模块的现代化继任者
java·前端·electron
持久的棒棒君4 天前
启动electron桌面项目控制台输出中文时乱码解决
前端·javascript·electron
参宿74 天前
electron之win/mac通知免打扰
java·前端·electron
卸任5 天前
Electron禁用系统快捷键
前端·c++·electron
庸懒5 天前
Electron自定义菜单栏及Mac最大化无效的问题解决
前端·macos·electron
Jack程26 天前
Electron+Node蓝牙开发实战:noble-winrt从零到精通
electron
逾明7 天前
Electron自定义菜单栏及Mac最大化无效的问题解决
前端·electron