commit
						58e568506a
					
				| 
						 | 
				
			
			@ -12,8 +12,12 @@ const pkg = require('../package.json')
 | 
			
		|||
const envContent = Object.entries(pkg.env).map(([key, val]) => `${key}=${val}`)
 | 
			
		||||
fs.writeFileSync(path.join(__dirname, '.debug.env'), envContent.join('\n'))
 | 
			
		||||
 | 
			
		||||
// for debug
 | 
			
		||||
fs.writeFileSync(path.join(__dirname, '../node_modules/.electron-vite-debug'), '')
 | 
			
		||||
 | 
			
		||||
// bootstrap
 | 
			
		||||
spawn(
 | 
			
		||||
  // TODO: terminate `npm run dev` when Debug exits.
 | 
			
		||||
  process.platform === 'win32' ? 'npm.cmd' : 'npm',
 | 
			
		||||
  ['run', 'dev'],
 | 
			
		||||
  { stdio: 'inherit' },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1 @@
 | 
			
		|||
declare namespace NodeJS {
 | 
			
		||||
  interface ProcessEnv {
 | 
			
		||||
    NODE_ENV: 'development' | 'production'
 | 
			
		||||
    readonly VITE_DEV_SERVER_HOST: string
 | 
			
		||||
    readonly VITE_DEV_SERVER_PORT: string
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
/// <reference types="vite-plugin-electron/electron-env" />
 | 
			
		||||
							
								
								
									
										12
									
								
								package.json
								
								
								
								
							
							
						
						
									
										12
									
								
								package.json
								
								
								
								
							| 
						 | 
				
			
			@ -14,21 +14,19 @@
 | 
			
		|||
  "engines": {
 | 
			
		||||
    "node": ">=14.17.0"
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "electron-store": "^8.0.2"
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {},
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@types/react": "^18.0.15",
 | 
			
		||||
    "@types/react-dom": "^18.0.6",
 | 
			
		||||
    "@vitejs/plugin-react": "^1.3.2",
 | 
			
		||||
    "electron": "^19.0.8",
 | 
			
		||||
    "@vitejs/plugin-react": "^2.0.0",
 | 
			
		||||
    "electron": "^19.0.9",
 | 
			
		||||
    "electron-builder": "^23.1.0",
 | 
			
		||||
    "react": "^18.2.0",
 | 
			
		||||
    "react-dom": "^18.2.0",
 | 
			
		||||
    "sass": "^1.53.0",
 | 
			
		||||
    "typescript": "^4.7.4",
 | 
			
		||||
    "vite": "^2.9.14",
 | 
			
		||||
    "vite-plugin-electron": "^0.8.0"
 | 
			
		||||
    "vite": "^3.0.2",
 | 
			
		||||
    "vite-plugin-electron": "^0.8.1"
 | 
			
		||||
  },
 | 
			
		||||
  "env": {
 | 
			
		||||
    "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 { defineConfig } from 'vite'
 | 
			
		||||
import { defineConfig, UserConfig, Plugin } from 'vite'
 | 
			
		||||
import react from '@vitejs/plugin-react'
 | 
			
		||||
import electron from 'vite-plugin-electron'
 | 
			
		||||
import pkg from './package.json'
 | 
			
		||||
| 
						 | 
				
			
			@ -20,12 +20,11 @@ export default defineConfig({
 | 
			
		|||
    electron({
 | 
			
		||||
      main: {
 | 
			
		||||
        entry: 'electron/main/index.ts',
 | 
			
		||||
        vite: {
 | 
			
		||||
        vite: withDebug({
 | 
			
		||||
          build: {
 | 
			
		||||
            sourcemap: false,
 | 
			
		||||
            outDir: 'dist/electron/main',
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
        }),
 | 
			
		||||
      },
 | 
			
		||||
      preload: {
 | 
			
		||||
        input: {
 | 
			
		||||
| 
						 | 
				
			
			@ -49,3 +48,23 @@ export default defineConfig({
 | 
			
		|||
    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