diff options
Diffstat (limited to 'packages/integrations/node/src/index.ts')
-rw-r--r-- | packages/integrations/node/src/index.ts | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/packages/integrations/node/src/index.ts b/packages/integrations/node/src/index.ts index e11576990..eb3c98a9b 100644 --- a/packages/integrations/node/src/index.ts +++ b/packages/integrations/node/src/index.ts @@ -24,6 +24,16 @@ export function getAdapter(options: Options): AstroAdapter { }; } +// TODO: remove once we don't use a TLA anymore +async function shouldExternalizeAstroEnvSetup() { + try { + await import('astro/env/setup'); + return false; + } catch { + return true; + } +} + export default function createIntegration(userOptions: UserOptions): AstroIntegration { if (!userOptions?.mode) { throw new AstroError(`Setting the 'mode' option is required.`); @@ -33,7 +43,7 @@ export default function createIntegration(userOptions: UserOptions): AstroIntegr return { name: '@astrojs/node', hooks: { - 'astro:config:setup': ({ updateConfig, config }) => { + 'astro:config:setup': async ({ updateConfig, config }) => { updateConfig({ image: { endpoint: config.image.endpoint ?? 'astro/assets/endpoint/node', @@ -41,6 +51,11 @@ export default function createIntegration(userOptions: UserOptions): AstroIntegr vite: { ssr: { noExternal: ['@astrojs/node'], + ...((await shouldExternalizeAstroEnvSetup()) + ? { + external: ['astro/env/setup'], + } + : {}), }, }, }); |