xiaopohou / electron-vue-vite

๐Ÿฅณ Very simple electron + vue3 + vite boilerplate.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

electron-vue-vite

awesome-vite GitHub license GitHub stars GitHub forks

English | ็ฎ€ไฝ“ไธญๆ–‡

๐Ÿฅณ Very simple Electron + Vue3 + Vite2 boilerplate.

Run Setup

# clone the project
git clone git@github.com:caoxiemeihao/electron-vue-vite.git

# enter the project directory
cd electron-vue-vite

# install dependency
npm install

# develop
npm run dev

Directory

โ”œ
โ”œโ”€โ”€ configs
โ”œ   โ”œโ”€โ”€ vite-main.config.ts          Main-process config file, for -> src/main
โ”œ   โ”œโ”€โ”€ vite-preload.config.ts       Preload-script config file, for -> src/preload
โ”œ   โ”œโ”€โ”€ vite-renderer.config.ts      Renderer-script config file, for -> src/renderer
โ”œ
โ”œโ”€โ”€ scripts
โ”œ   โ”œโ”€โ”€ build.mjs                    Build script, for -> npm run build
โ”œ   โ”œโ”€โ”€ electron-builder.config.mjs
โ”œ   โ”œโ”€โ”€ watch.mjs                    Develop script, for -> npm run dev
โ”œ
โ”œโ”€โ”€ src
โ”œ   โ”œโ”€โ”€ main                         Main-process source code
โ”œ   โ”œโ”€โ”€ preload                      Preload-script source code
โ”œ   โ”œโ”€โ”€ renderer                     Renderer-process source code
โ”œ

dist and src

  • Once npm run dev or npm run build is executed. Will be generated dist, it is the same as the src structure.

  • This ensures the accuracy of path calculation.

โ”œโ”€โ”€ dist
โ”œ   โ”œโ”€โ”€ main
โ”œ   โ”œโ”€โ”€ preload
โ”œ   โ”œโ”€โ”€ renderer
โ”œโ”€โ”€ src
โ”œ   โ”œโ”€โ”€ main
โ”œ   โ”œโ”€โ”€ preload
โ”œ   โ”œโ”€โ”€ renderer
โ”œ

Use Electron, NodeJs API

๐Ÿšจ By default, Electron don't support the use of API related to Electron and NoeJs in the Renderer-process, but someone still need to use it. If so, you can see the ๐Ÿ‘‰ npm-package vitejs-plugin-electron or another template vite-webpack-electron

All Electron, NodeJs API invoke passed Preload-script

  • src/preload/index.ts

    // --------- Expose some API to Renderer process. ---------
    contextBridge.exposeInMainWorld('fs', fs)
    contextBridge.exposeInMainWorld('ipcRenderer', ipcRenderer)
  • src/renderer/src/main.ts

    console.log('fs', window.fs)
    console.log('ipcRenderer', window.ipcRenderer)

Mian window

Wechat

About

๐Ÿฅณ Very simple electron + vue3 + vite boilerplate.

License:MIT License


Languages

Language:TypeScript 52.4%Language:JavaScript 24.3%Language:Vue 20.4%Language:HTML 3.0%