fix: output format error under multiple entries

This commit is contained in:
alex8088 2022-11-11 20:40:37 +08:00
parent cf1151ef5f
commit 41ff7372c2

View file

@ -52,10 +52,7 @@ export function electronMainVitePlugin(options?: ElectronPluginOptions): Plugin[
build: { build: {
outDir: path.resolve(root, 'out', 'main'), outDir: path.resolve(root, 'out', 'main'),
target: nodeTarget, target: nodeTarget,
lib: { assetsDir: 'chunks',
entry: findLibEntry(root, 'main'),
formats: ['cjs']
},
rollupOptions: { rollupOptions: {
external: ['electron', ...builtinModules.flatMap(m => [m, `node:${m}`])], external: ['electron', ...builtinModules.flatMap(m => [m, `node:${m}`])],
output: { output: {
@ -67,7 +64,18 @@ export function electronMainVitePlugin(options?: ElectronPluginOptions): Plugin[
} }
} }
const buildConfig = mergeConfig(defaultConfig.build, config.build || {}) const build = config.build || {}
const rollupOptions = build.rollupOptions || {}
if (!rollupOptions.input) {
defaultConfig.build['lib'] = {
entry: findLibEntry(root, 'main'),
formats: ['cjs']
}
} else {
defaultConfig.build.rollupOptions.output['format'] = 'cjs'
}
const buildConfig = mergeConfig(defaultConfig.build, build)
config.build = buildConfig config.build = buildConfig
config.define = config.define || {} config.define = config.define || {}
@ -93,7 +101,18 @@ export function electronMainVitePlugin(options?: ElectronPluginOptions): Plugin[
const lib = build.lib const lib = build.lib
if (!lib) { if (!lib) {
throw new Error('build lib field required for the electron vite main config') const rollupOptions = build.rollupOptions
if (!rollupOptions?.input) {
throw new Error('build lib field required for the electron vite main config')
} else {
const output = rollupOptions?.output
if (output) {
const formats = Array.isArray(output) ? output : [output]
if (!formats.some(f => f !== 'cjs')) {
throw new Error('the electron vite main config output format must be cjs')
}
}
}
} else { } else {
if (!lib.entry) { if (!lib.entry) {
throw new Error('build entry field required for the electron vite main config') throw new Error('build entry field required for the electron vite main config')
@ -124,6 +143,7 @@ export function electronPreloadVitePlugin(options?: ElectronPluginOptions): Plug
build: { build: {
outDir: path.resolve(root, 'out', 'preload'), outDir: path.resolve(root, 'out', 'preload'),
target: nodeTarget, target: nodeTarget,
assetsDir: 'chunks',
rollupOptions: { rollupOptions: {
external: ['electron', ...builtinModules.flatMap(m => [m, `node:${m}`])], external: ['electron', ...builtinModules.flatMap(m => [m, `node:${m}`])],
output: { output: {
@ -143,12 +163,10 @@ export function electronPreloadVitePlugin(options?: ElectronPluginOptions): Plug
formats: ['cjs'] formats: ['cjs']
} }
} else { } else {
if (!rollupOptions.output) { defaultConfig.build.rollupOptions.output['format'] = 'cjs'
defaultConfig.build.rollupOptions.output['format'] = 'cjs'
}
} }
const buildConfig = mergeConfig(defaultConfig.build, config.build || {}) const buildConfig = mergeConfig(defaultConfig.build, build)
config.build = buildConfig config.build = buildConfig
config.define = config.define || {} config.define = config.define || {}