commit
58e568506a
|
@ -12,8 +12,12 @@ const pkg = require('../package.json')
|
||||||
const envContent = Object.entries(pkg.env).map(([key, val]) => `${key}=${val}`)
|
const envContent = Object.entries(pkg.env).map(([key, val]) => `${key}=${val}`)
|
||||||
fs.writeFileSync(path.join(__dirname, '.debug.env'), envContent.join('\n'))
|
fs.writeFileSync(path.join(__dirname, '.debug.env'), envContent.join('\n'))
|
||||||
|
|
||||||
|
// for debug
|
||||||
|
fs.writeFileSync(path.join(__dirname, '../node_modules/.electron-vite-debug'), '')
|
||||||
|
|
||||||
// bootstrap
|
// bootstrap
|
||||||
spawn(
|
spawn(
|
||||||
|
// TODO: terminate `npm run dev` when Debug exits.
|
||||||
process.platform === 'win32' ? 'npm.cmd' : 'npm',
|
process.platform === 'win32' ? 'npm.cmd' : 'npm',
|
||||||
['run', 'dev'],
|
['run', 'dev'],
|
||||||
{ stdio: 'inherit' },
|
{ stdio: 'inherit' },
|
||||||
|
|
|
@ -1,7 +1 @@
|
||||||
declare namespace NodeJS {
|
/// <reference types="vite-plugin-electron/electron-env" />
|
||||||
interface ProcessEnv {
|
|
||||||
NODE_ENV: 'development' | 'production'
|
|
||||||
readonly VITE_DEV_SERVER_HOST: string
|
|
||||||
readonly VITE_DEV_SERVER_PORT: string
|
|
||||||
}
|
|
||||||
}
|
|
12
package.json
12
package.json
|
@ -14,21 +14,19 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.17.0"
|
"node": ">=14.17.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {},
|
||||||
"electron-store": "^8.0.2"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/react": "^18.0.15",
|
"@types/react": "^18.0.15",
|
||||||
"@types/react-dom": "^18.0.6",
|
"@types/react-dom": "^18.0.6",
|
||||||
"@vitejs/plugin-react": "^1.3.2",
|
"@vitejs/plugin-react": "^2.0.0",
|
||||||
"electron": "^19.0.8",
|
"electron": "^19.0.9",
|
||||||
"electron-builder": "^23.1.0",
|
"electron-builder": "^23.1.0",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
"sass": "^1.53.0",
|
"sass": "^1.53.0",
|
||||||
"typescript": "^4.7.4",
|
"typescript": "^4.7.4",
|
||||||
"vite": "^2.9.14",
|
"vite": "^3.0.2",
|
||||||
"vite-plugin-electron": "^0.8.0"
|
"vite-plugin-electron": "^0.8.1"
|
||||||
},
|
},
|
||||||
"env": {
|
"env": {
|
||||||
"VITE_DEV_SERVER_HOST": "127.0.0.1",
|
"VITE_DEV_SERVER_HOST": "127.0.0.1",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { rmSync } from 'fs'
|
import { existsSync, rmSync } from 'fs'
|
||||||
import { join } from 'path'
|
import { join } from 'path'
|
||||||
import { defineConfig } from 'vite'
|
import { defineConfig, UserConfig, Plugin } from 'vite'
|
||||||
import react from '@vitejs/plugin-react'
|
import react from '@vitejs/plugin-react'
|
||||||
import electron from 'vite-plugin-electron'
|
import electron from 'vite-plugin-electron'
|
||||||
import pkg from './package.json'
|
import pkg from './package.json'
|
||||||
|
@ -20,12 +20,11 @@ export default defineConfig({
|
||||||
electron({
|
electron({
|
||||||
main: {
|
main: {
|
||||||
entry: 'electron/main/index.ts',
|
entry: 'electron/main/index.ts',
|
||||||
vite: {
|
vite: withDebug({
|
||||||
build: {
|
build: {
|
||||||
sourcemap: false,
|
|
||||||
outDir: 'dist/electron/main',
|
outDir: 'dist/electron/main',
|
||||||
},
|
},
|
||||||
},
|
}),
|
||||||
},
|
},
|
||||||
preload: {
|
preload: {
|
||||||
input: {
|
input: {
|
||||||
|
@ -49,3 +48,23 @@ export default defineConfig({
|
||||||
port: pkg.env.VITE_DEV_SERVER_PORT,
|
port: pkg.env.VITE_DEV_SERVER_PORT,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
function withDebug(config: UserConfig): UserConfig {
|
||||||
|
const debugFile = join(__dirname, 'node_modules/.electron-vite-debug')
|
||||||
|
const isDebug = existsSync(debugFile)
|
||||||
|
|
||||||
|
if (isDebug) {
|
||||||
|
config.build.sourcemap = true
|
||||||
|
config.plugins = (config.plugins || []).concat({
|
||||||
|
name: 'electron-vite-debug',
|
||||||
|
configResolved(config) {
|
||||||
|
// TODO: when the next version of `vite-plugine-electron` is released, use the config hook.
|
||||||
|
const index = config.plugins.findIndex(p => p.name === 'electron-main-watcher');
|
||||||
|
(config.plugins as Plugin[]).splice(index, 1)
|
||||||
|
rmSync(debugFile)
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
return config
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue