diff options
Diffstat (limited to 'packages/integrations/netlify/src')
-rw-r--r-- | packages/integrations/netlify/src/index.ts | 15 | ||||
-rw-r--r-- | packages/integrations/netlify/src/ssr-function.ts | 7 |
2 files changed, 17 insertions, 5 deletions
diff --git a/packages/integrations/netlify/src/index.ts b/packages/integrations/netlify/src/index.ts index 8485afffb..cd13d9362 100644 --- a/packages/integrations/netlify/src/index.ts +++ b/packages/integrations/netlify/src/index.ts @@ -124,6 +124,16 @@ async function writeNetlifyDeployConfig(config: AstroConfig, logger: AstroIntegr ); } +// 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 interface NetlifyIntegrationConfig { /** * If enabled, On-Demand-Rendered pages are cached for up to a year. @@ -362,6 +372,11 @@ export default function netlifyIntegration( ignored: [fileURLToPath(new URL('./.netlify/**', rootDir))], }, }, + ...((await shouldExternalizeAstroEnvSetup()) + ? { + ssr: { external: ['astro/env/setup'] }, + } + : {}), }, image: { service: { diff --git a/packages/integrations/netlify/src/ssr-function.ts b/packages/integrations/netlify/src/ssr-function.ts index 46778ea07..dba0dbead 100644 --- a/packages/integrations/netlify/src/ssr-function.ts +++ b/packages/integrations/netlify/src/ssr-function.ts @@ -3,13 +3,10 @@ import type { SSRManifest } from 'astro'; import { App } from 'astro/app'; import { applyPolyfills } from 'astro/app/node'; -type EnvSetupModule = typeof import('astro/env/setup'); - // Won't throw if the virtual module is not available because it's not supported in // the users's astro version or if astro:env is not enabled in the project -const setupModule = 'astro/env/setup'; -await import(/* @vite-ignore */ setupModule) - .then((mod: EnvSetupModule) => mod.setGetEnv((key) => process.env[key])) +await import('astro/env/setup') + .then((mod) => mod.setGetEnv((key) => process.env[key])) .catch(() => {}); applyPolyfills(); |