diff options
author | 2024-05-11 07:39:43 +0200 | |
---|---|---|
committer | 2024-05-11 07:39:43 +0200 | |
commit | 1b65a113f2a1780702f9ea0eaba94ce740ceeb90 (patch) | |
tree | 45d81b003deddc9a0461464b675865fd4ec6b72f /packages/integrations/cloudflare/src | |
parent | 78a8b71c062eb5a9028eb225f8121b9193bdbaea (diff) | |
download | astro-1b65a113f2a1780702f9ea0eaba94ce740ceeb90.tar.gz astro-1b65a113f2a1780702f9ea0eaba94ce740ceeb90.tar.zst astro-1b65a113f2a1780702f9ea0eaba94ce740ceeb90.zip |
fix(cloudflare): node_modules on prerender pages only (#226)
Diffstat (limited to 'packages/integrations/cloudflare/src')
-rw-r--r-- | packages/integrations/cloudflare/src/index.ts | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/packages/integrations/cloudflare/src/index.ts b/packages/integrations/cloudflare/src/index.ts index 1675dfc1f..3f55f693c 100644 --- a/packages/integrations/cloudflare/src/index.ts +++ b/packages/integrations/cloudflare/src/index.ts @@ -259,6 +259,21 @@ export default function createIntegration(args?: Options): AstroIntegration { vite.build.rollupOptions.output.banner ||= 'globalThis.process ??= {}; globalThis.process.env ??= {};'; + // @ts-expect-error + vite.build.rollupOptions.output.manualChunks = (id: string) => { + if (id.includes('node_modules')) { + if (id.indexOf('node_modules') !== -1) { + const basic = id.toString().split('node_modules/')[1]; + const sub1 = basic.split('/')[0]; + if (sub1 !== '.pnpm') { + return sub1.toString(); + } + const name2 = basic.split('/')[1]; + return name2.split('@')[name2[0] === '@' ? 1 : 0].toString(); + } + } + }; + vite.build.rollupOptions.external = _config.vite.build?.rollupOptions?.external ?? []; // Cloudflare env is only available per request. This isn't feasible for code that access env vars @@ -278,6 +293,12 @@ export default function createIntegration(args?: Options): AstroIntegration { vite.resolve.conditions = vite.resolve.conditions.filter( (c) => c !== 'workerd' && c !== 'worker' ); + + vite.build ||= {}; + vite.build.rollupOptions ||= {}; + vite.build.rollupOptions.output ||= {}; + // @ts-expect-error + vite.build.rollupOptions.output.manualChunks = undefined; } }, 'astro:build:done': async ({ pages, routes, dir, logger }) => { |