perf: resolve import meta url in CommonJS format

This commit is contained in:
alex8088 2023-12-13 21:10:53 +08:00
parent 963f8aba51
commit 619a337c6d
2 changed files with 23 additions and 1 deletions

View file

@ -18,6 +18,7 @@ import { build } from 'esbuild'
import { electronMainVitePlugin, electronPreloadVitePlugin, electronRendererVitePlugin } from './plugins/electron'
import assetPlugin from './plugins/asset'
import workerPlugin from './plugins/worker'
import importMetaUrlPlugin from './plugins/importMetaUrl'
import esmShimPlugin from './plugins/esm'
import { isObject } from './utils'
@ -136,6 +137,7 @@ export async function resolveConfig(
...electronMainVitePlugin({ root }),
assetPlugin(),
workerPlugin(),
importMetaUrlPlugin(),
esmShimPlugin()
])
@ -149,7 +151,12 @@ export async function resolveConfig(
if (outDir) {
resetOutDir(preloadViteConfig, outDir, 'preload')
}
mergePlugins(preloadViteConfig, [...electronPreloadVitePlugin({ root }), assetPlugin(), esmShimPlugin()])
mergePlugins(preloadViteConfig, [
...electronPreloadVitePlugin({ root }),
assetPlugin(),
importMetaUrlPlugin(),
esmShimPlugin()
])
loadResult.config.preload = preloadViteConfig
loadResult.config.preload.configFile = false

View file

@ -0,0 +1,15 @@
import type { Plugin } from 'vite'
export default function importMetaUrlPlugin(): Plugin {
return {
name: 'vite:import-meta-url',
apply: 'build',
enforce: 'pre',
resolveImportMeta(property, { format }): string | null {
if (property === 'url' && format === 'cjs') {
return `require("url").pathToFileURL(__filename).href`
}
return null
}
}
}