-
-
Notifications
You must be signed in to change notification settings - Fork 10.7k
Closed
Labels
Description
Description
Preset-defined future flags are completely ignored during configuration resolution. The bug prevents presets from enabling experimental features, which is critical functionality for third-party integrations and hosting providers.
Current Behavior
When a preset defines future flags in its reactRouterConfig
hook, these flags are ignored and always resolve to false
, regardless of the preset's configuration.
Expected Behavior
Presets should be able to set future flags that are properly merged with user configuration, following the documented preset merging order where user config takes precedence over preset config.
Repro
https://stackblitz.com/edit/github-9jrvk31k?file=react-router.config.ts
Failing Test
pnpm test:integration --grep="presets"
16 failed
[chromium] › vite-presets-test.ts:159:5 › Vite / presets › Vite 5
[chromium] › vite-presets-test.ts:159:5 › Vite / presets › Vite 6
...
Error: Expected: {
v8_middleware: true,
unstable_optimizeDeps: true,
unstable_splitRouteModules: false,
unstable_subResourceIntegrity: false,
unstable_viteEnvironmentApi: false
}
Received: {
v8_middleware: false,
unstable_optimizeDeps: false,
unstable_splitRouteModules: false,
unstable_subResourceIntegrity: false,
unstable_viteEnvironmentApi: false
}
245 | expect(buildEndArgsMeta.futureFlags).toEqual({
246 | v8_middleware: true,
247 | unstable_optimizeDeps: true,
248 | unstable_splitRouteModules: false,
at /Users/juanp.prieto/github.com/Shopify/react-router/integration/vite-presets-test.ts:245:44
Failing Test Case
// Preset that sets future flags
{
name: "test-preset",
reactRouterConfig: async () => ({
future: {
v8_middleware: true,
unstable_optimizeDeps: true,
},
}),
},
// Test assertion
expect(buildEndArgsMeta.futureFlags).toEqual({
v8_middleware: true,
unstable_optimizeDeps: true,
unstable_splitRouteModules: false,
unstable_subResourceIntegrity: false,
unstable_viteEnvironmentApi: false,
});
lime517