【Electron + Vue3 + TS + Vite 仿网易云】part-1

前言

使用Electron + Vue3 + TS + Vite 搭建模仿桌面网易云。
接口使用网易云API感谢大佬!

一. 搭建基础项目

  1. 项目初始化

使用pnpm初始化一个vue3+ts+vite项目

 pnpm create vite wangyiyun --template vue-ts
  1. 安装依赖
pnpm i 
  1. 运行项目
pnpm dev

命令运行
运行成功
一个基础的Vue3 + TS + Vite的前端项目就初始化好了

二. 安装Electron

pnpm i electron -D

如果安装失败,出现类似RequestError: read ECONNRESET错误,
参考RequestError: read ECONNRESET
安装electron插件

pnpm i  vite-plugin-electron -D

三. 创建Electron主进程

项目根目录下创建electron-main目录,新建index.ts

import { app, BrowserWindow } from "electron";
import path from "path";
const createWindow = () => {
  const win = new BrowserWindow({
    webPreferences: {
      contextIsolation: false, // 是否开启隔离上下文
      nodeIntegration: true, // 渲染进程使用Node API
    //   preload: path.join(__dirname, "../electron-preload/index.js"), // 需要引用js文件
    },
  });
  // 如果打包了,渲染index.html
  if (app.isPackaged) {
    win.loadFile(path.join(__dirname, "../index.html"));
  } else {
    let url = "http://localhost:3000"; // 本地启动的vue项目路径
    win.loadURL(url);
  }
};
app.whenReady().then(() => {
  createWindow(); // 创建窗口
  app.on("activate", () => {
    if (BrowserWindow.getAllWindows().length === 0) createWindow();
  });
});
// 关闭窗口
app.on("window-all-closed", () => {
  if (process.platform !== "darwin") {
    app.quit();
  }
});

四. 修改配置文件

修改tsconfig.json
在include属性里新增关于electron文件监听的配置项。

  "include": [
    "src/**/*.ts",
    "src/**/*.d.ts",
    "src/**/*.tsx",
    "src/**/*.vue",
    
    "electron-main/**/*.ts",
    "electron-preload/**/*.ts"
  ],

修改vite.config.ts

export default defineConfig({
  plugins: [
    vue(),
    electron({
      entry: "electron-main/index.ts", // 主进程文件
    }),
  ],
  build: {
    emptyOutDir: false, // 默认情况下,若 outDir 在 root 目录下,则 Vite 会在构建时清空该目录
  },
})

修改package.json

{
  "name": "wangyiyun",
  "private": true,
  "version": "0.0.0",
  "main": "dist-electron/index.js",
  "scripts": {
    "dev": "vite",
    "build": "rimraf dist && vite build && electron-builder",
    "preview": "vite preview"
  },
  "dependencies": {
    "vue": "^3.3.4"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^4.2.3",
    "electron": "26.3.0",
    "rimraf": "5.0.5",
    "typescript": "^5.0.2",
    "vite": "^4.4.11",
    "vite-plugin-electron": "0.14.1",
    "vue-tsc": "^1.8.5"
  }
}
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值