diff --git a/src/config.ts b/src/config.ts index 89db366..fe04c84 100644 --- a/src/config.ts +++ b/src/config.ts @@ -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 diff --git a/src/plugins/importMetaUrl.ts b/src/plugins/importMetaUrl.ts new file mode 100644 index 0000000..223bdf5 --- /dev/null +++ b/src/plugins/importMetaUrl.ts @@ -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 + } + } +}