vite+vue3+electron项目搭建详细

一、 使用vite创建vue项目

1. 在项目文件夹下打开终端,输入下面命令创建vue项目
npm create vite@latest

然后选择语言,看需求选择用TS还是JS,为了方便我选择了JS 

2. 进入项目目录,安装依赖 
cd /你的项目名称/

npm install 
3. 运行vue
npm run dev

  终端显示如下

 VITE v5.3.4  ready in 770 ms

  ➜  Local:   http://localhost:5173/
  ➜  Network: use --host to expose

 然后访问http://localhost:5173/显示如下页面,vue项目就创建成功了

二、安装electron

1. 在项目中执行electron下载命令:
npm install electron -D

国内小伙伴可能出现安装不了的问题,我们可以打开npm的配置文件

npm config edit

然后会出现一个文本,我们去编辑文本将下面配置添加上去,如果有就这几项配置那就去修改

registry=https://registry.npmmirror.com
electron_mirror=https://cdn.npmmirror.com/binaries/electron/
electron_builder_binaries_mirror=https://npmmirror.com/mirrors/electron-builder-binaries/

 执行下面命令清除缓存,在安装就好了

npm cache clean --force
2. 定义electron的入口文件

vue的入口文件是index.html, electron的入口文件是main.js。所以要对入口进行整合。

先在项目根目录手动创建一个目录,然后在该目录下创建一个main.js。

修改 package.json 文件指定入口为 electron/main.js,修改 type 为 commonjs,并添加 electron:dev 命令以开发模式运行 Electron:

{
  "type": "commonjs",
  "main": "electron/main.js",
  "scripts": {
    "electron:dev": "electron ."
  }
}

三、运行electron 

1,在 electron 文件夹,新建 index.html 文件,添加如下代码:
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <meta
      http-equiv="Content-Security-Policy"
      content="default-src 'self'; script-src 'self'"
    />
    <meta
      http-equiv="X-Content-Security-Policy"
      content="default-src 'self'; script-src 'self'"
    />
    <title>Electron</title>
  </head>
  <body>
    <h1>Hello Electron </h1>
  </body>
</html>

然后在 electron 文件夹下的 main.js 文件里写入下面代码:

const { app, BrowserWindow } = require('electron')
const path = require("path")

const createWindow = () => {
  const mainWin = new BrowserWindow({
    width: 1000,
    height: 800,
  })
  
  mainWin.loadFile(path.join(__dirname, "./index.html"));

}

// 准备完成调用创建方法
app.whenReady().then(() => {
  createWindow()
})

app.on('window-all-closed', () => {
    if (process.platform !== 'darwin') app.quit()
})

运行指令

npm run electron:dev

显示下面窗口就代表运行成功了

 

2,与Vue结合显示vue页面 

将 main.js 代码修改如下:

const { app, BrowserWindow } = require('electron')
// const path = require("path")

const createWindow = () => {
  const mainWin = new BrowserWindow({
    width: 1000,
    height: 800,
  })
  
  //将链接修改成我们运行Vue时的地址:http://localhost:5173
  //mainWin.loadFile(path.join(__dirname, "./index.html"));
  mainWin.loadURL('http://localhost:5173')

}

// 准备完成调用创建方法
app.whenReady().then(() => {
  createWindow()
})

app.on('window-all-closed', () => {
    if (process.platform !== 'darwin') app.quit()
})

然后先运行 vue 再运行 electron

npm run dev


npm run electron:dev

窗口显示 vue 的页面就代表成功了

1

四,其他配置 

1,热更新工具

安装nodemon:

npm install nodemon -D

在 package.json 的 scripts 标签新增一条启动命令,监控文件改变,代码如下:

"electron": "nodemon --exec electron . --watch ./ --ext .js,.html,.css,.vue",
2,命令合并工具

每次都要运行 vue 再运行 electron 比较麻烦,因此我们安装一个命令合并运行的工具。 安装 npm-run-all:

npm install npm-run-all -D

在 package.json 的 scripts 标签修改启动命令,代码如下:

"electron:dev": "npm-run-all --parallel dev electron"

再运行.

npm run electron:dev

就会同时运行 vue 和 electron

3,打包工具

安装 electron-builder 工具:

npm install electron-builder -D

在 package.json 的 scripts 标签新增一条打包命令,代码如下: 

"electron:build": "vite build && electron-builder"

然后再在 package.json 新增打包的配置文件:


"build": {
    "productName": "electron-vue",
    "appId": "electron-vue",
    "asar": true,
    "directories": {
      "output": "dist_electron/${version}"
    },
    "files": [
      "dist",
      "electron"
    ],
    "nsis": {
      "oneClick": false,
      "allowToChangeInstallationDirectory": true
    },
    "mac": {
      "category": "your.app.category.type"
    },
    "win": {
      "icon": "./electron/log.ico",
      "target": [
        {
          "target": "nsis",
          "arch": [
            "ia32"
          ]
        }
      ]
    },
    "linux": {}
  }

 打包的时候会发现显示的空白,是因为我们 main.js 的 地址还是 http://localhost:5173 , 我们要根据环境显示不同的地址:

const { app, BrowserWindow } = require("electron");
const path = require("path");

const createWindow = () => {
  const mainWin = new BrowserWindow({
    width: 1000,
    height: 800,
  });

  //将链接修改成我们运行Vue时的地址:http://localhost:5173
  //mainWin.loadFile(path.join(__dirname, "./index.html"));
  //mainWin.loadURL('http://localhost:5173')

  const env = app.isPackaged ? "production" : "development";
  const indexHtml = {
    development: "http://localhost:5173", // 开发环境
    production: path.join(__dirname, "../dist/index.html"), // 生产环境
  };

  mainWin.loadURL(indexHtml[env]);
};

// 准备完成调用创建方法
app.whenReady().then(() => {
  createWindow();
});

app.on("window-all-closed", () => {
  if (process.platform !== "darwin") app.quit();
});

 还需要配置以下vite,让vite打包后的静态资源能够以本地file协议访问:

mport { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import {resolve} from 'path'
 
export default defineConfig({
  plugins: [vue()],
  base:'./',
  manifest:true,  
  resolve: {
    alias: {
      '@': resolve(__dirname, './src')
    }
  },
  optimizeDeps: {
    exclude: ['electron'], 
  }
})

运行打包:

npm run electron:build

完成后我们就可以看到在根目录多了两个文件一个是 dist 一个是 dist_electron

我们打开 dist_electron 再打开里面的文件 就能找到运行的 exe文件了 

Vite + Vue3 + TypeScript 项目打包成 Electron 应用程序需要进行以下步骤: 1. 安装 Electron:使用 npm 安装 Electron,可以通过以下命令进行安装: ``` npm install electron --save-dev ``` 2. 创建主进程文件:在根目录下创建一个名为 `electron.js` 的文件,并在其中编写 Electron 的主进程代码。 3. 修改 `package.json` 文件:将 `main` 属性的值设置为 `electron.js` 文件的路径,如下所示: ``` { "name": "your-app", "version": "0.0.1", "main": "electron.js", ... } ``` 4. 构建应用程序:在命令行中运行以下命令,将 Vite + Vue3 + TypeScript 项目构建成可在 Electron 中运行的应用程序。 ``` npm run build ``` 5. 打包应用程序:使用 Electron Builder 打包应用程序,可以使用以下命令进行安装: ``` npm install electron-builder --save-dev ``` 然后,在 `package.json` 文件中添加以下代码: ``` { "build": { "appId": "your.app.id", "productName": "Your App Name", "directories": { "output": "dist_electron" }, "files": [ "dist/**/*", "electron.js", "node_modules/**/*" ], "extraFiles": [ "assets/**/*" ], "mac": { "category": "your.app.category.type" }, "win": { "target": "nsis" } } } ``` 6. 打包应用程序:在命令行中运行以下命令,将 Vite + Vue3 + TypeScript 项目打包成可执行文件。 ``` npm run electron:build ``` 以上步骤是将 Vite + Vue3 + TypeScript 项目打包成 Electron 应用程序的基本步骤。根据自己的实际需求,可以进行一些额外的配置和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值