summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Erika <3019731+Princesseuh@users.noreply.github.com> 2023-02-06 21:17:34 +0100
committerGravatar GitHub <noreply@github.com> 2023-02-06 14:17:34 -0600
commit32abe49bd073417b480b1b990f432a837c12eb6f (patch)
tree40637fd7e6d477c2b5d9832ca1f8aad05c3a1d92
parent1b591a1431b44eacd239ed8f76809916cabca1db (diff)
downloadastro-32abe49bd073417b480b1b990f432a837c12eb6f.tar.gz
astro-32abe49bd073417b480b1b990f432a837c12eb6f.tar.zst
astro-32abe49bd073417b480b1b990f432a837c12eb6f.zip
Fix polyfills not being available to imports on Netlify (#6117)
* fix(netlify): Try to make polyfill external * feat(webapi): Add polyfill applier for SSR * fix(netlify): Externalize polyfills so they're always applied before user code * chore: changeset * test(netlify): Add test for polyfill being in the proper place * config(netlify): Remove unnecessary change to package.json * revert(netlify): Revert changes * feat(astro): Add a way for packages to explicitely mark themselves as needing to be external * Update .changeset/silent-dragons-sell.md --------- Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Diffstat (limited to '')
-rw-r--r--.changeset/silent-dragons-sell.md6
-rw-r--r--packages/astro/src/core/create-vite.ts6
-rw-r--r--packages/integrations/netlify/package.json3
3 files changed, 15 insertions, 0 deletions
diff --git a/.changeset/silent-dragons-sell.md b/.changeset/silent-dragons-sell.md
new file mode 100644
index 000000000..233d99a96
--- /dev/null
+++ b/.changeset/silent-dragons-sell.md
@@ -0,0 +1,6 @@
+---
+'@astrojs/netlify': patch
+'astro': patch
+---
+
+Fix polyfills not being available in certain cases
diff --git a/packages/astro/src/core/create-vite.ts b/packages/astro/src/core/create-vite.ts
index 5ebd05f55..c25668af4 100644
--- a/packages/astro/src/core/create-vite.ts
+++ b/packages/astro/src/core/create-vite.ts
@@ -55,6 +55,12 @@ export async function createVite(
isBuild: mode === 'build',
viteUserConfig: settings.config.vite,
isFrameworkPkgByJson(pkgJson) {
+ // Certain packages will trigger the checks below, but need to be external. A common example are SSR adapters
+ // for node-based platforms, as we need to control the order of the import paths to make sure polyfills are applied in time.
+ if (pkgJson?.astro?.external === true) {
+ return false;
+ }
+
return (
// Attempt: package relies on `astro`. ✅ Definitely an Astro package
pkgJson.peerDependencies?.astro ||
diff --git a/packages/integrations/netlify/package.json b/packages/integrations/netlify/package.json
index 25695ea79..33caf0f62 100644
--- a/packages/integrations/netlify/package.json
+++ b/packages/integrations/netlify/package.json
@@ -50,5 +50,8 @@
"cheerio": "^1.0.0-rc.11",
"mocha": "^9.2.2",
"vite": "^4.0.3"
+ },
+ "astro": {
+ "external": true
}
}