From 3a3875d347b648237331c014be651ede89d224c8 Mon Sep 17 00:00:00 2001 From: Dunqing Date: Thu, 1 Dec 2022 23:14:40 +0800 Subject: [PATCH 1/2] feat: improve the error message of `expand` --- packages/vite/src/node/env.ts | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/vite/src/node/env.ts b/packages/vite/src/node/env.ts index 21bdb0169791ae..1252c5b4d9153d 100644 --- a/packages/vite/src/node/env.ts +++ b/packages/vite/src/node/env.ts @@ -35,15 +35,27 @@ export function loadEnv( }) ) - // let environment variables use each other - const expandParsed = expand({ + const expandOptions = { parsed: { ...(process.env as any), ...parsed }, // prevent process.env mutation ignoreProcessEnv: true - }).parsed! + } + + let expandParsed: NonNullable['parsed']> + try { + // let environment variables use each other + expandParsed = expand(expandOptions).parsed! + } catch (e) { + if (e.message.includes('split')) { + throw new Error( + 'dotenv-expand failed to expand env vars. Maybe you need to escape `$`?' + ) + } + throw e + } Object.keys(parsed).forEach((key) => { parsed[key] = expandParsed[key] From 21d91ee75076970b59992576b271bc2e0924a7c0 Mon Sep 17 00:00:00 2001 From: Dunqing Date: Fri, 2 Dec 2022 15:07:40 +0800 Subject: [PATCH 2/2] Update packages/vite/src/node/env.ts Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com> --- packages/vite/src/node/env.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/vite/src/node/env.ts b/packages/vite/src/node/env.ts index 1252c5b4d9153d..22c9df61390ea8 100644 --- a/packages/vite/src/node/env.ts +++ b/packages/vite/src/node/env.ts @@ -49,6 +49,8 @@ export function loadEnv( // let environment variables use each other expandParsed = expand(expandOptions).parsed! } catch (e) { + // custom error handling until https://github.com/motdotla/dotenv-expand/issues/65 is fixed upstream + // check for message "TypeError: Cannot read properties of undefined (reading 'split')" if (e.message.includes('split')) { throw new Error( 'dotenv-expand failed to expand env vars. Maybe you need to escape `$`?'