14 Commits

Author SHA1 Message Date
草鞋没号
b9e6647581 chore: bump deps 2023-12-30 09:21:12 +08:00
草鞋没号
fc17f328a4 chore: bump vite-plugin-electron to 0.15.5 2023-12-13 12:44:45 +08:00
草鞋没号
7e1e590ab4 feat: add .npmrc 2023-12-13 10:15:54 +08:00
dependabot[bot]
1b77a3893c chore(deps-dev): bump vite from 4.5.0 to 5.0.4 (#445)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.5.0 to 5.0.4.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.0.4/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-03 10:02:54 +08:00
dependabot[bot]
d3b9cca7b9 chore(deps-dev): bump electron from 26.6.2 to 27.1.3 (#444)
Bumps [electron](https://github.com/electron/electron) from 26.6.2 to 27.1.3.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v26.6.2...v27.1.3)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-03 10:02:35 +08:00
草鞋没号
690c58d20b fix: #437 2023-11-07 10:23:07 +08:00
草鞋没号
e1425fb8e8 feat: better config 2023-09-08 12:24:39 +08:00
dependabot[bot]
c306cd51e2 chore(deps-dev): bump vite-plugin-electron from 0.13.0-beta.3 to 0.14.0 (#423)
* chore(deps-dev): bump vite-plugin-electron

Bumps [vite-plugin-electron](https://github.com/electron-vite/vite-plugin-electron) from 0.13.0-beta.3 to 0.14.0-beta.0.
- [Release notes](https://github.com/electron-vite/vite-plugin-electron/releases)
- [Changelog](https://github.com/electron-vite/vite-plugin-electron/blob/main/CHANGELOG.md)
- [Commits](https://github.com/electron-vite/vite-plugin-electron/compare/v0.13.0-beta.3...v0.14.0-beta.0)

---
updated-dependencies:
- dependency-name: vite-plugin-electron
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update package.json

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Leo Wang(草鞋没号) <308487730@qq.com>
2023-09-02 12:31:41 +08:00
阿菜 Cai
237790b0d9 chore: update dependencies (#421) 2023-08-22 16:16:13 +08:00
草鞋没号
72a74b89d8 fix: Rename PUBLIC environment variable to avoid problems with child_process 2023-08-04 11:27:49 +08:00
草鞋没号
36ae4e4421 docs: update 2023-08-02 10:00:22 +08:00
草鞋没号
76846513db chore: remove log 2023-07-06 12:52:36 +08:00
dependabot[bot]
b4cf3b4c5f chore(deps-dev): bump vite-plugin-electron from 0.11.2 to 0.12.0 (#406)
Bumps [vite-plugin-electron](https://github.com/electron-vite/vite-plugin-electron) from 0.11.2 to 0.12.0.
- [Release notes](https://github.com/electron-vite/vite-plugin-electron/releases)
- [Changelog](https://github.com/electron-vite/vite-plugin-electron/blob/main/CHANGELOG.md)
- [Commits](https://github.com/electron-vite/vite-plugin-electron/compare/v0.11.2...v0.12.0)

---
updated-dependencies:
- dependency-name: vite-plugin-electron
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-01 14:34:53 +08:00
dependabot[bot]
69e11a78ac chore(deps-dev): bump electron-builder from 23.6.0 to 24.4.0 (#405)
Bumps [electron-builder](https://github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-builder) from 23.6.0 to 24.4.0.
- [Release notes](https://github.com/electron-userland/electron-builder/releases)
- [Changelog](https://github.com/electron-userland/electron-builder/blob/master/packages/electron-builder/CHANGELOG.md)
- [Commits](https://github.com/electron-userland/electron-builder/commits/v24.4.0/packages/electron-builder)

---
updated-dependencies:
- dependency-name: electron-builder
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-01 14:34:30 +08:00
8 changed files with 64 additions and 33 deletions

6
.npmrc Normal file
View File

@@ -0,0 +1,6 @@
# For electron-builder
# https://github.com/electron-userland/electron-builder/issues/6289#issuecomment-1042620422
shamefully-hoist=true
# For China 🇨🇳 developers
# electron_mirror=https://npmmirror.com/mirrors/electron/

View File

@@ -19,16 +19,22 @@
🔩 Support C/C++ native addons 🔩 Support C/C++ native addons
🖥 It's easy to implement multiple windows 🖥 It's easy to implement multiple windows
## Quick Start ## Quick Setup
```sh ```sh
npm create electron-vite # clone the project
git clone https://github.com/electron-vite/electron-vite-vue.git
# enter the project directory
cd electron-vite-vue
# install dependency
npm install
# develop
npm run dev
``` ```
<!-- [![quick-start](https://asciinema.org/a/483731.svg)](https://asciinema.org/a/483731) -->
![electron-vite-vue.gif](/electron-vite-vue.gif)
## Debug ## Debug
![electron-vite-react-debug.gif](https://github.com/electron-vite/electron-vite-react/blob/main/electron-vite-react-debug.gif?raw=true) ![electron-vite-react-debug.gif](https://github.com/electron-vite/electron-vite-react/blob/main/electron-vite-react-debug.gif?raw=true)

View File

@@ -5,18 +5,19 @@
"$schema": "https://raw.githubusercontent.com/electron-userland/electron-builder/master/packages/app-builder-lib/scheme.json", "$schema": "https://raw.githubusercontent.com/electron-userland/electron-builder/master/packages/app-builder-lib/scheme.json",
"appId": "YourAppID", "appId": "YourAppID",
"asar": true, "asar": true,
"productName": "YourAppName",
"directories": { "directories": {
"output": "release/${version}" "output": "release/${version}"
}, },
"files": [ "files": [
"dist-electron", "dist",
"dist" "dist-electron"
], ],
"mac": { "mac": {
"artifactName": "${productName}_${version}.${ext}",
"target": [ "target": [
"dmg" "dmg"
] ],
"artifactName": "${productName}-Mac-${version}-Installer.${ext}"
}, },
"win": { "win": {
"target": [ "target": [
@@ -27,12 +28,18 @@
] ]
} }
], ],
"artifactName": "${productName}_${version}.${ext}" "artifactName": "${productName}-Windows-${version}-Setup.${ext}"
}, },
"nsis": { "nsis": {
"oneClick": false, "oneClick": false,
"perMachine": false, "perMachine": false,
"allowToChangeInstallationDirectory": true, "allowToChangeInstallationDirectory": true,
"deleteAppDataOnUninstall": false "deleteAppDataOnUninstall": false
},
"linux": {
"target": [
"AppImage"
],
"artifactName": "${productName}-Linux-${version}.${ext}"
} }
} }

View File

@@ -6,6 +6,6 @@ declare namespace NodeJS {
DIST_ELECTRON: string DIST_ELECTRON: string
DIST: string DIST: string
/** /dist/ or /public/ */ /** /dist/ or /public/ */
PUBLIC: string VITE_PUBLIC: string
} }
} }

View File

@@ -14,7 +14,7 @@ import { join } from 'node:path'
// //
process.env.DIST_ELECTRON = join(__dirname, '..') process.env.DIST_ELECTRON = join(__dirname, '..')
process.env.DIST = join(process.env.DIST_ELECTRON, '../dist') process.env.DIST = join(process.env.DIST_ELECTRON, '../dist')
process.env.PUBLIC = process.env.VITE_DEV_SERVER_URL process.env.VITE_PUBLIC = process.env.VITE_DEV_SERVER_URL
? join(process.env.DIST_ELECTRON, '../public') ? join(process.env.DIST_ELECTRON, '../public')
: process.env.DIST : process.env.DIST
@@ -43,7 +43,7 @@ const indexHtml = join(process.env.DIST, 'index.html')
async function createWindow() { async function createWindow() {
win = new BrowserWindow({ win = new BrowserWindow({
title: 'Main window', title: 'Main window',
icon: join(process.env.PUBLIC, 'favicon.ico'), icon: join(process.env.VITE_PUBLIC, 'favicon.ico'),
webPreferences: { webPreferences: {
preload, preload,
// Warning: Enable nodeIntegration and disable contextIsolation is not secure in production // Warning: Enable nodeIntegration and disable contextIsolation is not secure in production

View File

@@ -1,6 +1,6 @@
{ {
"name": "electron-vue-vite", "name": "electron-vue-vite",
"version": "2.0.0", "version": "2.2.0",
"main": "dist-electron/main/index.js", "main": "dist-electron/main/index.js",
"description": "Really simple Electron + Vue + Vite boilerplate.", "description": "Really simple Electron + Vue + Vite boilerplate.",
"author": "草鞋没号 <308487730@qq.com>", "author": "草鞋没号 <308487730@qq.com>",
@@ -24,14 +24,15 @@
"preview": "vite preview" "preview": "vite preview"
}, },
"devDependencies": { "devDependencies": {
"@vitejs/plugin-vue": "^4.1.0", "@vitejs/plugin-vue": "^5.0.1",
"electron": "^25.0.1", "electron": "^28.1.0",
"electron-builder": "^23.6.0", "electron-builder": "^24.9.1",
"typescript": "^5.0.2", "tree-kill": "^1.2.2",
"vite": "^4.1.4", "typescript": "^5.3.3",
"vite-plugin-electron": "^0.11.2", "vite": "^5.0.10",
"vite-plugin-electron-renderer": "^0.14.1", "vite-plugin-electron": "^0.15.5",
"vue": "^3.2.47", "vite-plugin-electron-renderer": "^0.14.5",
"vue-tsc": "^1.2.0" "vue": "^3.4.1",
"vue-tsc": "^1.8.27"
} }
} }

View File

@@ -1,7 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import HelloWorld from './components/HelloWorld.vue' import HelloWorld from './components/HelloWorld.vue'
console.log("[App.vue]", `Hello world from Electron ${process.versions.electron}!`)
</script> </script>
<template> <template>

View File

@@ -3,6 +3,7 @@ import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue' import vue from '@vitejs/plugin-vue'
import electron from 'vite-plugin-electron' import electron from 'vite-plugin-electron'
import renderer from 'vite-plugin-electron-renderer' import renderer from 'vite-plugin-electron-renderer'
import { notBundle } from 'vite-plugin-electron/plugin'
import pkg from './package.json' import pkg from './package.json'
// https://vitejs.dev/config/ // https://vitejs.dev/config/
@@ -18,13 +19,13 @@ export default defineConfig(({ command }) => {
vue(), vue(),
electron([ electron([
{ {
// Main-Process entry file of the Electron App. // Main process entry file of the Electron App.
entry: 'electron/main/index.ts', entry: 'electron/main/index.ts',
onstart(options) { onstart({ startup }) {
if (process.env.VSCODE_DEBUG) { if (process.env.VSCODE_DEBUG) {
console.log(/* For `.vscode/.debug.script.mjs` */'[startup] Electron App') console.log(/* For `.vscode/.debug.script.mjs` */'[startup] Electron App')
} else { } else {
options.startup() startup()
} }
}, },
vite: { vite: {
@@ -33,17 +34,26 @@ export default defineConfig(({ command }) => {
minify: isBuild, minify: isBuild,
outDir: 'dist-electron/main', outDir: 'dist-electron/main',
rollupOptions: { rollupOptions: {
// Some third-party Node.js libraries may not be built correctly by Vite, especially `C/C++` addons,
// we can use `external` to exclude them to ensure they work correctly.
// Others need to put them in `dependencies` to ensure they are collected into `app.asar` after the app is built.
// Of course, this is not absolute, just this way is relatively simple. :)
external: Object.keys('dependencies' in pkg ? pkg.dependencies : {}), external: Object.keys('dependencies' in pkg ? pkg.dependencies : {}),
}, },
}, },
plugins: [
// This is just an option to improve build performance, it's non-deterministic!
// e.g. `import log from 'electron-log'` -> `const log = require('electron-log')`
isServe && notBundle(),
],
}, },
}, },
{ {
entry: 'electron/preload/index.ts', entry: 'electron/preload/index.ts',
onstart(options) { onstart({ reload }) {
// Notify the Renderer-Process to reload the page when the Preload-Scripts build is complete, // Notify the Renderer process to reload the page when the Preload scripts build is complete,
// instead of restarting the entire Electron App. // instead of restarting the entire Electron App.
options.reload() reload()
}, },
vite: { vite: {
build: { build: {
@@ -54,10 +64,13 @@ export default defineConfig(({ command }) => {
external: Object.keys('dependencies' in pkg ? pkg.dependencies : {}), external: Object.keys('dependencies' in pkg ? pkg.dependencies : {}),
}, },
}, },
plugins: [
isServe && notBundle(),
],
}, },
} }
]), ]),
// Use Node.js API in the Renderer-process // Use Node.js API in the Renderer process
renderer(), renderer(),
], ],
server: process.env.VSCODE_DEBUG && (() => { server: process.env.VSCODE_DEBUG && (() => {