Skip to content

Commit e1d98d9

Browse files
Mark reveal as unsupported in RSC Framework Mode (#14289)
1 parent 34ee782 commit e1d98d9

File tree

3 files changed

+50
-25
lines changed

3 files changed

+50
-25
lines changed

packages/react-router-dev/cli/commands.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { transpile as convertFileToJS } from "./useJavascript";
1616
import * as profiler from "../vite/profiler";
1717
import * as Typegen from "../typegen";
1818
import { preloadVite, getVite } from "../vite/vite";
19+
import { hasReactRouterRscPlugin } from "../vite/has-rsc-plugin";
1920

2021
export async function routes(
2122
rootDirectory?: string,
@@ -89,14 +90,32 @@ export async function generateEntry(
8990
mode?: string;
9091
} = {},
9192
) {
93+
rootDirectory = resolveRootDirectory(rootDirectory, flags);
94+
95+
if (
96+
await hasReactRouterRscPlugin({
97+
root: rootDirectory,
98+
viteBuildOptions: {
99+
config: flags.config,
100+
mode: flags.mode,
101+
},
102+
})
103+
) {
104+
console.error(
105+
colors.red(
106+
`The reveal command is currently not supported in RSC Framework Mode.`,
107+
),
108+
);
109+
process.exit(1);
110+
}
111+
92112
// if no entry passed, attempt to create both
93113
if (!entry) {
94114
await generateEntry("entry.client", rootDirectory, flags);
95115
await generateEntry("entry.server", rootDirectory, flags);
96116
return;
97117
}
98118

99-
rootDirectory = resolveRootDirectory(rootDirectory, flags);
100119
let configResult = await loadConfig({
101120
rootDirectory,
102121
mode: flags.mode ?? "production",

packages/react-router-dev/vite/build.ts

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
} from "./plugin";
1616
import invariant from "../invariant";
1717
import { preloadVite, getVite } from "./vite";
18+
import { hasReactRouterRscPlugin } from "./has-rsc-plugin";
1819
export interface ViteBuildOptions {
1920
assetsInlineLimit?: number;
2021
clearScreen?: boolean;
@@ -234,27 +235,3 @@ async function viteBuild(
234235
viteConfig,
235236
});
236237
}
237-
238-
async function hasReactRouterRscPlugin({
239-
root,
240-
viteBuildOptions: { config, logLevel, mode },
241-
}: {
242-
root: string;
243-
viteBuildOptions: ViteBuildOptions;
244-
}): Promise<boolean> {
245-
const vite = await import("vite");
246-
const viteConfig = await vite.resolveConfig(
247-
{
248-
configFile: config,
249-
logLevel,
250-
mode: mode ?? "production",
251-
root,
252-
},
253-
"build", // command
254-
"production", // default mode
255-
"production", // default NODE_ENV
256-
);
257-
return viteConfig.plugins.some(
258-
(plugin) => plugin?.name === "react-router/rsc",
259-
);
260-
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import type * as Vite from "vite";
2+
3+
export async function hasReactRouterRscPlugin({
4+
root,
5+
viteBuildOptions: { config, logLevel, mode },
6+
}: {
7+
root: string;
8+
viteBuildOptions: {
9+
config?: string;
10+
logLevel?: Vite.LogLevel;
11+
mode?: string;
12+
};
13+
}): Promise<boolean> {
14+
const vite = await import("vite");
15+
const viteConfig = await vite.resolveConfig(
16+
{
17+
configFile: config,
18+
logLevel,
19+
mode: mode ?? "production",
20+
root,
21+
},
22+
"build", // command
23+
"production", // default mode
24+
"production", // default NODE_ENV
25+
);
26+
return viteConfig.plugins.some(
27+
(plugin) => plugin?.name === "react-router/rsc",
28+
);
29+
}

0 commit comments

Comments
 (0)