mirror of
https://github.com/alex8088/electron-vite.git
synced 2026-04-30 01:38:14 +08:00
Compare commits
2 Commits
v6.0.0-bet
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
31965d2972 | ||
|
|
4bede21c81 |
@ -195,20 +195,14 @@ export async function resolveConfig(
|
||||
const { main, preload, renderer } = loadResult.config
|
||||
|
||||
if (main) {
|
||||
main.build ??= {}
|
||||
setupRollupOptionCompat(main.build)
|
||||
userConfig.main = await new MainConfigFactory(main, config, { outDir, root }).build()
|
||||
}
|
||||
|
||||
if (preload) {
|
||||
preload.build ??= {}
|
||||
setupRollupOptionCompat(preload.build)
|
||||
userConfig.preload = await new PreloadConfigFactory(preload, config, { outDir, root }).build()
|
||||
}
|
||||
|
||||
if (renderer) {
|
||||
renderer.build ??= {}
|
||||
setupRollupOptionCompat(renderer.build)
|
||||
userConfig.renderer = await new RendererConfigFactory(renderer, config, { outDir, root }).build()
|
||||
}
|
||||
|
||||
@ -226,20 +220,15 @@ export async function resolveConfig(
|
||||
return resolved
|
||||
}
|
||||
|
||||
function setupRollupOptionCompat<T extends Pick<ViteBuildOptions, 'rollupOptions' | 'rolldownOptions'>>(
|
||||
buildConfig: T
|
||||
): asserts buildConfig is T & {
|
||||
rolldownOptions: Exclude<T['rolldownOptions'], undefined>
|
||||
} {
|
||||
buildConfig.rolldownOptions ??= buildConfig.rollupOptions
|
||||
}
|
||||
|
||||
export abstract class ConfigFactory<T extends MainViteConfig | PreloadViteConfig | RendererViteConfig> {
|
||||
constructor(
|
||||
protected readonly baseConfig: T,
|
||||
protected readonly inlineConfig: InlineConfig,
|
||||
protected readonly options: { outDir?: string; root?: string }
|
||||
) {}
|
||||
) {
|
||||
baseConfig.build ??= {}
|
||||
baseConfig.build.rolldownOptions ??= baseConfig.build.rollupOptions
|
||||
}
|
||||
|
||||
async build(cleanMode?: boolean): Promise<T> {
|
||||
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
|
||||
|
||||
@ -2,7 +2,7 @@ import path from 'node:path'
|
||||
import fs from 'node:fs'
|
||||
import { builtinModules } from 'node:module'
|
||||
import colors from 'picocolors'
|
||||
import { type Plugin, type LibraryOptions, type Rolldown, mergeConfig, normalizePath } from 'vite'
|
||||
import { type Plugin, type LibraryOptions, type Rolldown, type UserConfig, mergeConfig, normalizePath } from 'vite'
|
||||
import { getElectronNodeTarget, getElectronChromeTarget, supportESM } from '../electron'
|
||||
import { loadPackageData } from '../utils'
|
||||
|
||||
@ -64,11 +64,6 @@ export function electronMainConfigPresetPlugin(options?: ElectronPluginOptions):
|
||||
const format = pkg.type && pkg.type === 'module' && supportESM() ? 'es' : 'cjs'
|
||||
|
||||
const defaultConfig = {
|
||||
resolve: {
|
||||
browserField: false,
|
||||
mainFields: ['module', 'jsnext:main', 'jsnext'],
|
||||
conditions: ['node']
|
||||
},
|
||||
build: {
|
||||
outDir: path.resolve(root, 'out', 'main'),
|
||||
target: nodeTarget,
|
||||
@ -80,7 +75,7 @@ export function electronMainConfigPresetPlugin(options?: ElectronPluginOptions):
|
||||
reportCompressedSize: false,
|
||||
minify: false
|
||||
}
|
||||
}
|
||||
} satisfies UserConfig
|
||||
|
||||
const build = config.build || {}
|
||||
const rolldownOptions = build.rolldownOptions || {}
|
||||
@ -106,8 +101,6 @@ export function electronMainConfigPresetPlugin(options?: ElectronPluginOptions):
|
||||
const buildConfig = mergeConfig(defaultConfig.build, build)
|
||||
config.build = buildConfig
|
||||
|
||||
config.resolve = mergeConfig(defaultConfig.resolve, config.resolve || {})
|
||||
|
||||
config.define = config.define || {}
|
||||
config.define = { ...processEnvDefine(), ...config.define }
|
||||
|
||||
@ -213,7 +206,7 @@ export function electronPreloadConfigPresetPlugin(options?: ElectronPluginOption
|
||||
reportCompressedSize: false,
|
||||
minify: false
|
||||
}
|
||||
}
|
||||
} satisfies UserConfig
|
||||
|
||||
const build = config.build || {}
|
||||
const rolldownOptions = build.rolldownOptions || {}
|
||||
@ -372,7 +365,7 @@ export function electronRendererConfigPresetPlugin(options?: ElectronPluginOptio
|
||||
minify: false,
|
||||
emptyOutDir: emptyOutDir()
|
||||
}
|
||||
}
|
||||
} satisfies UserConfig
|
||||
|
||||
if (config.build?.outDir) {
|
||||
config.build.outDir = path.resolve(root, config.build.outDir)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user