diff --git a/packages/main/index.ts b/packages/main/index.ts deleted file mode 100644 index c993ac4..0000000 --- a/packages/main/index.ts +++ /dev/null @@ -1,93 +0,0 @@ -import { app, BrowserWindow, shell,ipcMain } from 'electron' -import { release } from 'os' -import { join } from 'path' - -// Disable GPU Acceleration for Windows 7 -if (release().startsWith('6.1')) app.disableHardwareAcceleration() - -// Set application name for Windows 10+ notifications -if (process.platform === 'win32') app.setAppUserModelId(app.getName()) - -if (!app.requestSingleInstanceLock()) { - app.quit() - process.exit(0) -} -process.env['ELECTRON_DISABLE_SECURITY_WARNINGS'] = 'true' - -let win: BrowserWindow | null = null - -async function createWindow() { - win = new BrowserWindow({ - title: 'Main window', - webPreferences: { - preload: join(__dirname, '../preload/index.cjs'), - nodeIntegration: true, - contextIsolation: false, - }, - }) - - if (app.isPackaged) { - win.loadFile(join(__dirname, '../renderer/index.html')) - } else { - // 🚧 Use ['ENV_NAME'] avoid vite:define plugin - const url = `http://${process.env['VITE_DEV_SERVER_HOST']}:${process.env['VITE_DEV_SERVER_PORT']}` - - win.loadURL(url) - // win.webContents.openDevTools() - } - - // Test active push message to Renderer-process - win.webContents.on('did-finish-load', () => { - win?.webContents.send('main-process-message', new Date().toLocaleString()) - }) - - // Make all links open with the browser, not with the application - win.webContents.setWindowOpenHandler(({ url }) => { - if (url.startsWith('https:')) shell.openExternal(url) - return { action: 'deny' } - }) -} - -app.whenReady().then(createWindow) - -app.on('window-all-closed', () => { - win = null - if (process.platform !== 'darwin') app.quit() -}) - -app.on('second-instance', () => { - if (win) { - // Focus on the main window if the user tried to open another - if (win.isMinimized()) win.restore() - win.focus() - } -}) - -app.on('activate', () => { - const allWindows = BrowserWindow.getAllWindows() - if (allWindows.length) { - allWindows[0].focus() - } else { - createWindow() - } -}) - -// new window example arg: new windows url -ipcMain.handle("open-win", (event, arg) => { - const childWindow = new BrowserWindow({ - webPreferences: { - preload: join(__dirname, "../preload/index.cjs"), - }, - }); - - if (app.isPackaged) { - childWindow.loadFile(join(__dirname, `../renderer/index.html`), { - hash: `${arg}`, - }) - } else { - // 🚧 Use ['ENV_NAME'] avoid vite:define plugin - const url = `http://${process.env["VITE_DEV_SERVER_HOST"]}:${process.env["VITE_DEV_SERVER_PORT"]}/#${arg}` - childWindow.loadURL(url); - // childWindow.webContents.openDevTools({ mode: "undocked", activate: true }) - } -}); diff --git a/packages/main/vite.config.ts b/packages/main/vite.config.ts deleted file mode 100644 index cd7928b..0000000 --- a/packages/main/vite.config.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { builtinModules } from 'module' -import { defineConfig } from 'vite' -import pkg from '../../package.json' - -export default defineConfig({ - root: __dirname, - build: { - outDir: '../../dist/main', - emptyOutDir: true, - minify: process.env./* from mode option */NODE_ENV === 'production', - sourcemap: true, - lib: { - entry: 'index.ts', - formats: ['cjs'], - fileName: () => '[name].cjs', - }, - rollupOptions: { - external: [ - 'electron', - ...builtinModules, - // @ts-ignore - ...Object.keys(pkg.dependencies || {}), - ], - }, - }, -}) diff --git a/packages/preload/index.ts b/packages/preload/index.ts deleted file mode 100644 index 3368dbd..0000000 --- a/packages/preload/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { domReady } from './utils' -import { useLoading } from './loading' - -const { appendLoading, removeLoading } = useLoading() -window.removeLoading = removeLoading - -domReady().then(appendLoading) diff --git a/packages/preload/loading.ts b/packages/preload/loading.ts deleted file mode 100644 index 84d72df..0000000 --- a/packages/preload/loading.ts +++ /dev/null @@ -1,67 +0,0 @@ -/** - * https://tobiasahlin.com/spinkit - * https://connoratherton.com/loaders - * https://projects.lukehaas.me/css-loaders - * https://matejkustec.github.io/SpinThatShit - */ -export function useLoading() { - const className = `loaders-css__square-spin` - const styleContent = ` -@keyframes square-spin { - 25% { transform: perspective(100px) rotateX(180deg) rotateY(0); } - 50% { transform: perspective(100px) rotateX(180deg) rotateY(180deg); } - 75% { transform: perspective(100px) rotateX(0) rotateY(180deg); } - 100% { transform: perspective(100px) rotateX(0) rotateY(0); } -} -.${className} > div { - animation-fill-mode: both; - width: 50px; - height: 50px; - background: #fff; - animation: square-spin 3s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite; -} -.app-loading-wrap { - position: fixed; - top: 0; - left: 0; - width: 100vw; - height: 100vh; - display: flex; - align-items: center; - justify-content: center; - background: #282c34; - z-index: 9; -} - ` - const oStyle = document.createElement('style') - const oDiv = document.createElement('div') - - oStyle.id = 'app-loading-style' - oStyle.innerHTML = styleContent - oDiv.className = 'app-loading-wrap' - oDiv.innerHTML = `
` - - return { - appendLoading() { - safe.append(document.head, oStyle) - safe.append(document.body, oDiv) - }, - removeLoading() { - safe.remove(document.head, oStyle) - safe.remove(document.body, oDiv) - }, - } -} - -const safe = { - append(parent: HTMLElement, child: HTMLElement) { - if (!Array.from(parent.children).find(e => e === child)) { - return parent.appendChild(child) - } - }, - remove(parent: HTMLElement, child: HTMLElement) { - if (Array.from(parent.children).find(e => e === child)) { - return parent.removeChild(child) - } - }, -} diff --git a/packages/preload/utils.ts b/packages/preload/utils.ts deleted file mode 100644 index 7dd3280..0000000 --- a/packages/preload/utils.ts +++ /dev/null @@ -1,15 +0,0 @@ - -/** docoment ready */ -export function domReady(condition: DocumentReadyState[] = ['complete', 'interactive']) { - return new Promise(resolve => { - if (condition.includes(document.readyState)) { - resolve(true) - } else { - document.addEventListener('readystatechange', () => { - if (condition.includes(document.readyState)) { - resolve(true) - } - }) - } - }) -} diff --git a/packages/preload/vite.config.ts b/packages/preload/vite.config.ts deleted file mode 100644 index 550000d..0000000 --- a/packages/preload/vite.config.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { join } from 'path' -import { builtinModules } from 'module' -import { defineConfig } from 'vite' -import pkg from '../../package.json' - -export default defineConfig({ - root: __dirname, - build: { - outDir: '../../dist/preload', - emptyOutDir: true, - minify: process.env./* from mode option */NODE_ENV === 'production', - // https://github.com/caoxiemeihao/electron-vue-vite/issues/61 - sourcemap: 'inline', - rollupOptions: { - input: { - // multiple entry - index: join(__dirname, 'index.ts'), - }, - output: { - format: 'cjs', - entryFileNames: '[name].cjs', - manualChunks: {}, - }, - external: [ - 'electron', - ...builtinModules, - // @ts-ignore - ...Object.keys(pkg.dependencies || {}), - ], - }, - }, -}) diff --git a/packages/renderer/index.html b/packages/renderer/index.html deleted file mode 100644 index 275b440..0000000 --- a/packages/renderer/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - Vite App - - -
- - - diff --git a/packages/renderer/public/electron-vite-vue.gif b/packages/renderer/public/electron-vite-vue.gif deleted file mode 100644 index 66a14af..0000000 Binary files a/packages/renderer/public/electron-vite-vue.gif and /dev/null differ diff --git a/packages/renderer/public/favicon.ico b/packages/renderer/public/favicon.ico deleted file mode 100644 index df36fcf..0000000 Binary files a/packages/renderer/public/favicon.ico and /dev/null differ diff --git a/packages/renderer/public/images/node.png b/packages/renderer/public/images/node.png deleted file mode 100644 index 1cd6519..0000000 Binary files a/packages/renderer/public/images/node.png and /dev/null differ diff --git a/packages/renderer/public/images/quick-start.gif b/packages/renderer/public/images/quick-start.gif deleted file mode 100644 index d2c60ef..0000000 Binary files a/packages/renderer/public/images/quick-start.gif and /dev/null differ diff --git a/packages/renderer/src/App.vue b/packages/renderer/src/App.vue deleted file mode 100644 index 20eb2a1..0000000 --- a/packages/renderer/src/App.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - - - diff --git a/packages/renderer/src/assets/electron.png b/packages/renderer/src/assets/electron.png deleted file mode 100644 index 45c8adb..0000000 Binary files a/packages/renderer/src/assets/electron.png and /dev/null differ diff --git a/packages/renderer/src/assets/vite.svg b/packages/renderer/src/assets/vite.svg deleted file mode 100644 index 6471ae0..0000000 --- a/packages/renderer/src/assets/vite.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/packages/renderer/src/assets/vue.png b/packages/renderer/src/assets/vue.png deleted file mode 100644 index f3d2503..0000000 Binary files a/packages/renderer/src/assets/vue.png and /dev/null differ diff --git a/packages/renderer/src/components/HelloWorld.vue b/packages/renderer/src/components/HelloWorld.vue deleted file mode 100644 index 2d61249..0000000 --- a/packages/renderer/src/components/HelloWorld.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - - - diff --git a/packages/renderer/src/env.d.ts b/packages/renderer/src/env.d.ts deleted file mode 100644 index d27eb5a..0000000 --- a/packages/renderer/src/env.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -/// - -declare module '*.vue' { - import { DefineComponent } from 'vue' - // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types - const component: DefineComponent<{}, {}, any> - export default component -} diff --git a/packages/renderer/src/global.d.ts b/packages/renderer/src/global.d.ts deleted file mode 100644 index 9511991..0000000 --- a/packages/renderer/src/global.d.ts +++ /dev/null @@ -1,8 +0,0 @@ - -export { } - -declare global { - interface Window { - removeLoading: () => void - } -} diff --git a/packages/renderer/src/main.ts b/packages/renderer/src/main.ts deleted file mode 100644 index 5b91e1f..0000000 --- a/packages/renderer/src/main.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { createApp } from 'vue' -import App from './App.vue' -import './samples/node-api' - -createApp(App) - .mount('#app') - .$nextTick(window.removeLoading) diff --git a/packages/renderer/src/samples/node-api.ts b/packages/renderer/src/samples/node-api.ts deleted file mode 100644 index 8668059..0000000 --- a/packages/renderer/src/samples/node-api.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { lstat } from 'fs/promises' -import { cwd } from 'process' -import { ipcRenderer } from 'electron' - -// Usage of ipcRenderer.on -ipcRenderer.on('main-process-message', (_event, ...args) => { - console.log('[Receive Main-process message]:', ...args) -}) - -lstat(cwd()).then(stats => { - console.log('[fs.lstat]', stats) -}).catch(err => { - console.error(err) -}) diff --git a/packages/renderer/tsconfig.json b/packages/renderer/tsconfig.json deleted file mode 100644 index ff337fc..0000000 --- a/packages/renderer/tsconfig.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "target": "esnext", - "useDefineForClassFields": true, - "module": "esnext", - "moduleResolution": "node", - "strict": true, - "jsx": "preserve", - "sourceMap": true, - "resolveJsonModule": true, - "esModuleInterop": true, - "lib": ["esnext", "dom"] - }, - "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"] -} diff --git a/packages/renderer/vite.config.ts b/packages/renderer/vite.config.ts deleted file mode 100644 index 95f482e..0000000 --- a/packages/renderer/vite.config.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { defineConfig } from 'vite' -import vue from '@vitejs/plugin-vue' -import resolve, { lib2esm } from 'vite-plugin-resolve' -import electron from 'vite-plugin-electron/renderer' -import pkg from '../../package.json' - -// https://vitejs.dev/config/ -export default defineConfig({ - mode: process.env.NODE_ENV, - root: __dirname, - plugins: [ - vue(), - electron(), - resolve( - /** - * Here you can specify other modules - * 🚧 You have to make sure that your module is in `dependencies` and not in the` devDependencies`, - * which will ensure that the electron-builder can package it correctly - */ - { - // If you use the following modules, the following configuration will work - // What they have in common is that they will return - ESM format code snippets - - // ESM format string - 'electron-store': 'export default require("electron-store");', - // Use lib2esm() to easy to convert ESM - // Equivalent to - /** - * sqlite3: () => ` - * const _M_ = require('sqlite3'); - * const _D_ = _M_.default || _M_; - * export { _D_ as default } - * ` - */ - sqlite3: lib2esm('sqlite3', { format: 'cjs' }), - serialport: lib2esm( - // CJS lib name - 'serialport', - // export memebers - [ - 'SerialPort', - 'SerialPortMock', - ], - { format: 'cjs' }, - ), - } - ), - ], - base: './', - build: { - outDir: '../../dist/renderer', - emptyOutDir: true, - sourcemap: true, - }, - server: { - host: pkg.env.VITE_DEV_SERVER_HOST, - port: pkg.env.VITE_DEV_SERVER_PORT, - }, -})