-
-
Notifications
You must be signed in to change notification settings - Fork 3k
fix: redirects and i18n routing #14797
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
| // Load page module only when we need it for getStaticPaths | ||
| const pageModuleFn = pageMap.get(componentPath); | ||
| if (!pageModuleFn) { | ||
| const pageModule = await app.pipeline.getComponentByRoute(route); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ah very cool, I assume this is what prevents us from needing to pass through the pageMap now, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes exactly! The method reads the pageMap, which is injected into the manifest
|
Looks like linting is failing. Would like to see that pass before approving. |
8a2aa57 to
2f6d6c9
Compare
Co-authored-by: Emanuele Stoppa <[email protected]> Co-authored-by: Samuel Macleod <[email protected]> Co-authored-by: Alexander Niebuhr <[email protected]> Co-authored-by: ascorbic <[email protected]> Co-authored-by: matthewp <[email protected]> Co-authored-by: Florian Lefebvre <[email protected]> Co-authored-by: Matt Kane <[email protected]> Co-authored-by: florian-lefebvre <[email protected]> Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Matthew Phillips <[email protected]> Co-authored-by: Matthew Phillips <[email protected]> Co-authored-by: Sarah Rainsberger <[email protected]> Co-authored-by: Erika <[email protected]> Co-authored-by: Hayato Hasegawa <[email protected]> fix: creation of routes list in build (#14325) Fix unit tests for environment API (#14394) fixture (#14599) fix: organize imports and formatting in cloudflare handler (#14697) fix: resolve environment-api build issues for client & CSS (#14770) Fixes CSS when both static/client styles exist (#14790) fix: flag `serverLike` incorrectly computed (#14792) fix: redirects and i18n routing (#14797) fix: logger level and static paths params (#14799) Fix image tests crashing (#14803) fix(environment): Error overlay not working (#14816) fix: hashing of chunks (#14811) Fix before-hydration script emission for environment-api (#14818) fix: node leak into content collections (#14820) fix: avoid `node:path` (#14827) Fix API route tests (#14825) Fix unit tests (#14832) fix: server islands build (#14830) Fix astro-component-bundling tests (#14840) Fix astro-component-bundling tests (#14837) Fix config alias by using resolve.alias config (#14828) fix: container and routing tests (#14852) fix: respect user vite config on sourcemaps (#14847) fix: remove useless tests (#14854) Fixes assetQueryParams and public folder tests (#14853) fix: renderError fallback (#14855) Fix server-islands data being used across tests (#14857) fix: incorrect configuration in tests (#14858) Fixes for tests in environment branch (#14865) Fixes for e2e tests in environment branch (#14870) fix(test): svelte async rendering (#14886) fix(cloudflare/vercel/netlify): some tests pass and excluded others (#14892) Fixes for node integrations tests (#14900) Fix @astrojs/db tests (#14899) fix(environment): Prevent Vite from interpreting injected sourcemap comments as actual sourcemaps (#14921) Fix remaining cloudflare tests (#14912) fix(vite): import mergeConfig from direct file to avoid dynamic import being processed by Vite (#14939) Fix astro:env tests in Cloudflare (#14925)
Changes
This PR fixes how component instances and routes are retrieved during the build.
Before, fallbacks and redirects were ignored, now they are correctly retrieved. When a route is a redirect or a fallback, we retrieve its "destination" route, so we can correctly process
getStaticPaths.To fix this, I implemented the generic method
getModuleForRoutefor theAppPipeline.There are also some changes around the
BuildPipeline, however they don't play a role anymore because weAppPipelineduring prerendering.Testing
All tests in
redirects.test.jsnow pass.Now
Before
More tests are now passing in
i18n-routing.test.js, but others still fail due togetStaticPaths.Docs