diff --git a/packages/playground/worker/url-worker.js b/packages/playground/worker/url-worker.js index 79d05da0f06082..c25cbefdff89ec 100644 --- a/packages/playground/worker/url-worker.js +++ b/packages/playground/worker/url-worker.js @@ -1 +1 @@ -self.postMessage('A string' + import.meta.env.BASE_URL) +self.postMessage('A string' + import.meta.env.BASE_URL + import.meta.url) diff --git a/packages/vite/src/node/plugins/define.ts b/packages/vite/src/node/plugins/define.ts index 19ca28b34433a0..ee505dd8476e16 100644 --- a/packages/vite/src/node/plugins/define.ts +++ b/packages/vite/src/node/plugins/define.ts @@ -10,6 +10,7 @@ const isNonJsRequest = (request: string): boolean => nonJsRe.test(request) export function definePlugin(config: ResolvedConfig): Plugin { const isBuild = config.command === 'build' + const isWorker = config.isWorker const processNodeEnv: Record = { 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || config.mode), @@ -62,7 +63,12 @@ export function definePlugin(config: ResolvedConfig): Plugin { ...(isNeedProcessEnv ? processNodeEnv : {}), ...userDefine, ...importMetaKeys, - ...processEnv + ...processEnv, + ...(isWorker + ? { + 'import.meta.url': 'self.location.href' + } + : {}) } const replacementsKeys = Object.keys(replacements)