vite+vue3+ts项目集成electron

  • 创建vite+vue3+ts项目

创建项目可参考:vue3+ts项目构建

  • 安装electron相关依赖
npm install -D electron electron-builder electron-devtools-installer vite-plugin-electron vite-plugin-electron-renderer rimraf
  • 新建electron-main/index.ts文件
复制代码
import { app, BrowserWindow } from "electron";
import * as path from "path";

// 本地启动的vue项目路径
const localAddress = "http://localhost:5173";
// 创建一个新的窗口
const createWindow = () => {
  const win = new BrowserWindow({
    webPreferences: {
      contextIsolation: false,
      nodeIntegration: true,
    },
  });
  if (app.isPackaged) {
    win.loadFile(path.join(__dirname, "../dist/index.html"));
  } else {
    win.loadURL(localAddress);
  }
};
// 打开窗口
app.whenReady().then(() => {
  createWindow();
  app.on("activate", () => {
    if (BrowserWindow.getAllWindows().length === 0) createWindow();
  });
});
// 关闭窗口
app.on("window-all-closed", () => {
  if (process.platform !== "darwin") {
    app.quit();
  }
});
复制代码
  • 修改vite.config.ts
复制代码
import electron from "vite-plugin-electron";
import electronRenderer from "vite-plugin-electron-renderer";
...
   plugins: [
      ...,
      electron({
        entry: "electron-main/index.ts", // 主进程文件
      }),
      electronRenderer(),
    ],
    build: {
      emptyOutDir: false,
    },
复制代码
  • 修改tsconfig.json
 "include": [..., "electron-main/**/*.ts"]
  • 修改package.json
复制代码
 "scripts": {
    ...,
    "dev": "vite --mode development",
    "build": "rimraf dist && vite build && electron-builder",
  },
  "build": {
    "appId": "xxx",
    "productName": "xxx",
    "asar": true,
    "copyright": "xxx",
    "directories": {
      "output": "release/${version}"
    },
    "files": [
      "dist/**/*",
      "dist-electron/**/*"
    ],
    "mac": {
      "artifactName": "${productName}_${version}.${ext}",
      "target": [
        "dmg"
      ]
    },
    "win": {
      "target": [
        {
          "target": "nsis",
          "arch": [
            "x64"
          ]
        }
      ],
      "artifactName": "${productName}_${version}.${ext}"
    },
    "nsis": {
      "oneClick": false,
      "perMachine": false,
      "allowToChangeInstallationDirectory": true,
      "deleteAppDataOnUninstall": false
    },
    "publish": [
      {
        "provider": "xxx",
        "url": "xxx"
      }
    ],
    "releaseInfo": {
      "releaseNotes": "xxx"
    }
  },
复制代码
  • 运行
npm run dev 运行命令
npm run build 打包命令
posted @   南无、  阅读(589)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示