summaryrefslogtreecommitdiff
path: root/packages/integrations/netlify/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/netlify/src')
-rw-r--r--packages/integrations/netlify/src/index.ts15
-rw-r--r--packages/integrations/netlify/src/ssr-function.ts7
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();