- npm workspaces 루트 (apps/*, packages/*) 세팅 - V1 전체를 apps/desktop/으로 git mv (src, resources, tests, sidecar, scripts, electron.vite.config.ts, electron-builder.yml, vitest.config.ts, tsconfig.node.json, tsconfig.web.json) - apps/desktop/package.json 신규 (name=@d3ro/desktop) - productName: 'd3ro-voice' 명시 — app.getName()을 고정하여 userData 경로 %APPDATA%\d3ro-voice\ 그대로 유지 (기존 DB/설정 연속성 보장) - 루트 package.json을 workspace 루트로 재구성, 공통 devDep만 유지 (typescript, eslint, prettier) - turbo.json, tsconfig.base.json 추가 (Turborepo 자체 설치는 별도 sub-phase) - memory/project_status.md 생성 (규칙 13) 검증: - npm run typecheck 통과 - npm run build 통과 (electron-vite main+preload+renderer) - npm run dev 실제 실행 → DB/핫키/Ollama 자동 실행 모두 정상
65 lines
1.6 KiB
TypeScript
65 lines
1.6 KiB
TypeScript
import { resolve } from 'path'
|
|
import { defineConfig, externalizeDepsPlugin } from 'electron-vite'
|
|
import react from '@vitejs/plugin-react'
|
|
|
|
export default defineConfig({
|
|
main: {
|
|
plugins: [externalizeDepsPlugin({ exclude: ['nanoid', 'electron-store'] })],
|
|
resolve: {
|
|
alias: {
|
|
'@shared': resolve('src/shared')
|
|
}
|
|
}
|
|
},
|
|
preload: {
|
|
plugins: [externalizeDepsPlugin()],
|
|
build: {
|
|
rollupOptions: {
|
|
input: {
|
|
index: resolve(__dirname, 'src/preload/index.ts'),
|
|
popup: resolve(__dirname, 'src/preload/popup.ts')
|
|
}
|
|
}
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
'@shared': resolve('src/shared')
|
|
}
|
|
}
|
|
},
|
|
renderer: {
|
|
build: {
|
|
rollupOptions: {
|
|
input: {
|
|
index: resolve(__dirname, 'src/renderer/index.html'),
|
|
'popups/recording-tip': resolve(
|
|
__dirname,
|
|
'src/renderer/popups/recording-tip/index.html'
|
|
),
|
|
'popups/result-popup': resolve(
|
|
__dirname,
|
|
'src/renderer/popups/result-popup/index.html'
|
|
),
|
|
'popups/history-popup': resolve(
|
|
__dirname,
|
|
'src/renderer/popups/history-popup/index.html'
|
|
),
|
|
'popups/command-popup': resolve(
|
|
__dirname,
|
|
'src/renderer/popups/command-popup/index.html'
|
|
),
|
|
'popups/caption-overlay': resolve(
|
|
__dirname,
|
|
'src/renderer/popups/caption-overlay/index.html'
|
|
)
|
|
}
|
|
}
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
'@shared': resolve('src/shared')
|
|
}
|
|
},
|
|
plugins: [react()]
|
|
}
|
|
})
|