@react-router/dev 0.0.0-experimental-df0f1dfda → 0.0.0-experimental-a383e1e6e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/dist/cli/index.js +21 -2
- package/dist/config.js +1 -1
- package/dist/routes.js +1 -1
- package/dist/vite/cloudflare.js +1 -1
- package/dist/vite.js +39 -36
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# `@react-router/dev`
|
|
2
2
|
|
|
3
|
+
## 7.1.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Properly resolve Windows file paths to scan for Vite's dependency optimization when using the `unstable_optimizeDeps` future flag. ([#12637](https://github.com/remix-run/react-router/pull/12637))
|
|
8
|
+
- Fix prerendering when using a custom server - previously we ended up trying to import the users custom server when we actually want to import the virtual server build module ([#12759](https://github.com/remix-run/react-router/pull/12759))
|
|
9
|
+
- Updated dependencies:
|
|
10
|
+
- `react-router@7.1.4`
|
|
11
|
+
- `@react-router/node@7.1.4`
|
|
12
|
+
- `@react-router/serve@7.1.4`
|
|
13
|
+
|
|
3
14
|
## 7.1.3
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
package/dist/cli/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* @react-router/dev v0.0.0-experimental-
|
|
3
|
+
* @react-router/dev v0.0.0-experimental-a383e1e6e
|
|
4
4
|
*
|
|
5
5
|
* Copyright (c) Remix Software Inc.
|
|
6
6
|
*
|
|
@@ -706,6 +706,8 @@ function generate(ctx, route) {
|
|
|
706
706
|
export type HeadersArgs = T.HeadersArgs
|
|
707
707
|
export type HeadersFunction = (args: HeadersArgs) => Headers | HeadersInit
|
|
708
708
|
|
|
709
|
+
export type unstable_MiddlewareArgs = T.CreateServerMiddlewareArgs<Info>
|
|
710
|
+
export type unstable_ClientMiddlewareArgs = T.CreateClientMiddlewareArgs<Info>
|
|
709
711
|
export type LoaderArgs = T.CreateServerLoaderArgs<Info>
|
|
710
712
|
export type ClientLoaderArgs = T.CreateClientLoaderArgs<Info>
|
|
711
713
|
export type ActionArgs = T.CreateServerActionArgs<Info>
|
|
@@ -983,7 +985,7 @@ async function resolveViteConfig({
|
|
|
983
985
|
async function extractPluginContext(viteConfig) {
|
|
984
986
|
return viteConfig["__reactRouterPluginContext"];
|
|
985
987
|
}
|
|
986
|
-
var import_node_crypto, path7, url, fse, babel2, import_react_router2, import_es_module_lexer, import_jsesc, import_picocolors4, virtualHmrRuntime, virtualInjectHmrRuntime, virtual, getServerBuildDirectory, defaultEntriesDir, defaultEntries, REACT_REFRESH_HEADER;
|
|
988
|
+
var import_node_crypto, path7, url, fse, babel2, import_react_router2, import_es_module_lexer, import_jsesc, import_picocolors4, import_kebabCase, CLIENT_ONLY_NON_COMPONENT_EXPORTS, CLIENT_ROUTE_EXPORTS, virtualHmrRuntime, virtualInjectHmrRuntime, virtual, getServerBuildDirectory, defaultEntriesDir, defaultEntries, REACT_REFRESH_HEADER;
|
|
987
989
|
var init_plugin = __esm({
|
|
988
990
|
"vite/plugin.ts"() {
|
|
989
991
|
"use strict";
|
|
@@ -996,6 +998,7 @@ var init_plugin = __esm({
|
|
|
996
998
|
import_es_module_lexer = require("es-module-lexer");
|
|
997
999
|
import_jsesc = __toESM(require("jsesc"));
|
|
998
1000
|
import_picocolors4 = __toESM(require("picocolors"));
|
|
1001
|
+
import_kebabCase = __toESM(require("lodash/kebabCase"));
|
|
999
1002
|
init_typegen();
|
|
1000
1003
|
init_invariant();
|
|
1001
1004
|
init_babel();
|
|
@@ -1009,6 +1012,22 @@ var init_plugin = __esm({
|
|
|
1009
1012
|
init_vite();
|
|
1010
1013
|
init_config();
|
|
1011
1014
|
init_with_props();
|
|
1015
|
+
CLIENT_ONLY_NON_COMPONENT_EXPORTS = [
|
|
1016
|
+
"clientAction",
|
|
1017
|
+
"clientLoader",
|
|
1018
|
+
"unstable_clientMiddleware",
|
|
1019
|
+
"handle",
|
|
1020
|
+
"meta",
|
|
1021
|
+
"links",
|
|
1022
|
+
"shouldRevalidate"
|
|
1023
|
+
];
|
|
1024
|
+
CLIENT_ROUTE_EXPORTS = [
|
|
1025
|
+
...CLIENT_ONLY_NON_COMPONENT_EXPORTS,
|
|
1026
|
+
"default",
|
|
1027
|
+
"ErrorBoundary",
|
|
1028
|
+
"HydrateFallback",
|
|
1029
|
+
"Layout"
|
|
1030
|
+
];
|
|
1012
1031
|
virtualHmrRuntime = create("hmr-runtime");
|
|
1013
1032
|
virtualInjectHmrRuntime = create("inject-hmr-runtime");
|
|
1014
1033
|
virtual = {
|
package/dist/config.js
CHANGED
package/dist/routes.js
CHANGED
package/dist/vite/cloudflare.js
CHANGED
package/dist/vite.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @react-router/dev v0.0.0-experimental-
|
|
2
|
+
* @react-router/dev v0.0.0-experimental-a383e1e6e
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -54,6 +54,7 @@ var import_react_router2 = require("react-router");
|
|
|
54
54
|
var import_es_module_lexer = require("es-module-lexer");
|
|
55
55
|
var import_jsesc = __toESM(require("jsesc"));
|
|
56
56
|
var import_picocolors3 = __toESM(require("picocolors"));
|
|
57
|
+
var import_kebabCase = __toESM(require("lodash/kebabCase"));
|
|
57
58
|
|
|
58
59
|
// typegen/index.ts
|
|
59
60
|
var import_node_fs2 = __toESM(require("fs"));
|
|
@@ -693,6 +694,8 @@ function generate(ctx, route) {
|
|
|
693
694
|
export type HeadersArgs = T.HeadersArgs
|
|
694
695
|
export type HeadersFunction = (args: HeadersArgs) => Headers | HeadersInit
|
|
695
696
|
|
|
697
|
+
export type unstable_MiddlewareArgs = T.CreateServerMiddlewareArgs<Info>
|
|
698
|
+
export type unstable_ClientMiddlewareArgs = T.CreateClientMiddlewareArgs<Info>
|
|
696
699
|
export type LoaderArgs = T.CreateServerLoaderArgs<Info>
|
|
697
700
|
export type ClientLoaderArgs = T.CreateClientLoaderArgs<Info>
|
|
698
701
|
export type ActionArgs = T.CreateServerActionArgs<Info>
|
|
@@ -1890,19 +1893,28 @@ function toFunctionExpression(decl) {
|
|
|
1890
1893
|
}
|
|
1891
1894
|
|
|
1892
1895
|
// vite/plugin.ts
|
|
1893
|
-
var SERVER_ONLY_ROUTE_EXPORTS = [
|
|
1894
|
-
|
|
1896
|
+
var SERVER_ONLY_ROUTE_EXPORTS = [
|
|
1897
|
+
"loader",
|
|
1898
|
+
"action",
|
|
1899
|
+
"unstable_middleware",
|
|
1900
|
+
"headers"
|
|
1901
|
+
];
|
|
1902
|
+
var CLIENT_ONLY_NON_COMPONENT_EXPORTS = [
|
|
1895
1903
|
"clientAction",
|
|
1896
1904
|
"clientLoader",
|
|
1897
|
-
"
|
|
1898
|
-
"ErrorBoundary",
|
|
1905
|
+
"unstable_clientMiddleware",
|
|
1899
1906
|
"handle",
|
|
1900
|
-
"HydrateFallback",
|
|
1901
|
-
"Layout",
|
|
1902
|
-
"links",
|
|
1903
1907
|
"meta",
|
|
1908
|
+
"links",
|
|
1904
1909
|
"shouldRevalidate"
|
|
1905
1910
|
];
|
|
1911
|
+
var CLIENT_ROUTE_EXPORTS = [
|
|
1912
|
+
...CLIENT_ONLY_NON_COMPONENT_EXPORTS,
|
|
1913
|
+
"default",
|
|
1914
|
+
"ErrorBoundary",
|
|
1915
|
+
"HydrateFallback",
|
|
1916
|
+
"Layout"
|
|
1917
|
+
];
|
|
1906
1918
|
var BUILD_CLIENT_ROUTE_QUERY_STRING = "?__react-router-build-client-route";
|
|
1907
1919
|
var isRouteEntryModuleId = (id) => {
|
|
1908
1920
|
return id.endsWith(BUILD_CLIENT_ROUTE_QUERY_STRING);
|
|
@@ -2177,7 +2189,8 @@ var reactRouterVitePlugin = () => {
|
|
|
2177
2189
|
)};
|
|
2178
2190
|
export const basename = ${JSON.stringify(ctx.reactRouterConfig.basename)};
|
|
2179
2191
|
export const future = ${JSON.stringify(ctx.reactRouterConfig.future)};
|
|
2180
|
-
export const
|
|
2192
|
+
export const ssr = ${ctx.reactRouterConfig.ssr};
|
|
2193
|
+
export const isSpaMode = ${isSpaModeEnabled(ctx.reactRouterConfig)};
|
|
2181
2194
|
export const publicPath = ${JSON.stringify(ctx.publicPath)};
|
|
2182
2195
|
export const entry = { module: entryServer };
|
|
2183
2196
|
export const routes = {
|
|
@@ -2527,6 +2540,16 @@ var reactRouterVitePlugin = () => {
|
|
|
2527
2540
|
rollupOptions: {
|
|
2528
2541
|
...baseRollupOptions,
|
|
2529
2542
|
preserveEntrySignatures: "exports-only",
|
|
2543
|
+
output: {
|
|
2544
|
+
entryFileNames({ moduleIds }) {
|
|
2545
|
+
let routeChunkModuleId = moduleIds.find(isRouteChunkModuleId);
|
|
2546
|
+
let routeChunkName = routeChunkModuleId ? getRouteChunkNameFromModuleId(
|
|
2547
|
+
routeChunkModuleId
|
|
2548
|
+
) : null;
|
|
2549
|
+
let routeChunkSuffix = routeChunkName ? `-${(0, import_kebabCase.default)(routeChunkName)}` : "";
|
|
2550
|
+
return `assets/[name]${routeChunkSuffix}-[hash].js`;
|
|
2551
|
+
}
|
|
2552
|
+
},
|
|
2530
2553
|
input: [
|
|
2531
2554
|
ctx.entryClientFilePath,
|
|
2532
2555
|
...Object.values(
|
|
@@ -3046,7 +3069,7 @@ var reactRouterVitePlugin = () => {
|
|
|
3046
3069
|
}
|
|
3047
3070
|
let route = getRoute(ctx.reactRouterConfig, id);
|
|
3048
3071
|
if (!route) return;
|
|
3049
|
-
if (!options?.ssr &&
|
|
3072
|
+
if (!options?.ssr && isSpaModeEnabled(ctx.reactRouterConfig)) {
|
|
3050
3073
|
let exportNames = getExportNames(code);
|
|
3051
3074
|
let serverOnlyExports = exportNames.filter(
|
|
3052
3075
|
(exp) => SERVER_ONLY_ROUTE_EXPORTS.includes(exp)
|
|
@@ -3248,14 +3271,7 @@ function uniqueNodes(nodes) {
|
|
|
3248
3271
|
}
|
|
3249
3272
|
function addRefreshWrapper(reactRouterConfig, code, id) {
|
|
3250
3273
|
let route = getRoute(reactRouterConfig, id);
|
|
3251
|
-
let acceptExports = route ? [
|
|
3252
|
-
"clientAction",
|
|
3253
|
-
"clientLoader",
|
|
3254
|
-
"handle",
|
|
3255
|
-
"meta",
|
|
3256
|
-
"links",
|
|
3257
|
-
"shouldRevalidate"
|
|
3258
|
-
] : [];
|
|
3274
|
+
let acceptExports = route ? CLIENT_ONLY_NON_COMPONENT_EXPORTS : [];
|
|
3259
3275
|
return REACT_REFRESH_HEADER.replaceAll("__SOURCE__", JSON.stringify(id)) + code + REACT_REFRESH_FOOTER.replaceAll("__SOURCE__", JSON.stringify(id)).replaceAll("__ACCEPT_EXPORTS__", JSON.stringify(acceptExports)).replaceAll("__ROUTE_ID__", JSON.stringify(route?.id));
|
|
3260
3276
|
}
|
|
3261
3277
|
var REACT_REFRESH_HEADER = `
|
|
@@ -3354,6 +3370,9 @@ async function getRouteMetadata(cache, ctx, viteChildCompiler, route, readRouteF
|
|
|
3354
3370
|
};
|
|
3355
3371
|
return info;
|
|
3356
3372
|
}
|
|
3373
|
+
function isSpaModeEnabled(reactRouterConfig) {
|
|
3374
|
+
return reactRouterConfig.ssr === false && (reactRouterConfig.prerender == null || reactRouterConfig.prerender === false || Array.isArray(reactRouterConfig.prerender) && reactRouterConfig.prerender.length === 1 && reactRouterConfig.prerender[0] === "/");
|
|
3375
|
+
}
|
|
3357
3376
|
async function getPrerenderBuildAndHandler(viteConfig, serverBuildDirectory, serverBuildFile) {
|
|
3358
3377
|
let serverBuildPath = path6.join(serverBuildDirectory, serverBuildFile);
|
|
3359
3378
|
let build = await import(url.pathToFileURL(serverBuildPath).toString());
|
|
@@ -3448,12 +3467,6 @@ async function handlePrerender(viteConfig, reactRouterConfig, serverBuildDirecto
|
|
|
3448
3467
|
);
|
|
3449
3468
|
}
|
|
3450
3469
|
}
|
|
3451
|
-
await prerenderManifest(
|
|
3452
|
-
build,
|
|
3453
|
-
clientBuildDirectory,
|
|
3454
|
-
reactRouterConfig,
|
|
3455
|
-
viteConfig
|
|
3456
|
-
);
|
|
3457
3470
|
}
|
|
3458
3471
|
function determineStaticPrerenderRoutes(routes, viteConfig, isBooleanUsage = false) {
|
|
3459
3472
|
let paths = ["/"];
|
|
@@ -3529,18 +3542,6 @@ async function prerenderResourceRoute(handler, prerenderPath, clientBuildDirecto
|
|
|
3529
3542
|
await fse.outputFile(outfile, text);
|
|
3530
3543
|
viteConfig.logger.info(`Prerender: Generated ${import_picocolors3.default.bold(outfile)}`);
|
|
3531
3544
|
}
|
|
3532
|
-
async function prerenderManifest(build, clientBuildDirectory, reactRouterConfig, viteConfig) {
|
|
3533
|
-
let normalizedPath = `${reactRouterConfig.basename}/__manifest`.replace(
|
|
3534
|
-
/\/\/+/g,
|
|
3535
|
-
"/"
|
|
3536
|
-
);
|
|
3537
|
-
let outdir = path6.relative(process.cwd(), clientBuildDirectory);
|
|
3538
|
-
let outfile = path6.join(outdir, ...normalizedPath.split("/"));
|
|
3539
|
-
await fse.ensureDir(path6.dirname(outfile));
|
|
3540
|
-
let manifestData = JSON.stringify(build.assets.routes);
|
|
3541
|
-
await fse.outputFile(outfile, manifestData);
|
|
3542
|
-
viteConfig.logger.info(`Prerender: Generated ${import_picocolors3.default.bold(outfile)}`);
|
|
3543
|
-
}
|
|
3544
3545
|
function validatePrerenderedResponse(response, html, prefix, path7) {
|
|
3545
3546
|
if (response.status !== 200) {
|
|
3546
3547
|
throw new Error(
|
|
@@ -3579,6 +3580,8 @@ function createPrerenderRoutes(manifest, parentId = "", routesByParentId = group
|
|
|
3579
3580
|
loader: route.module.loader ? () => null : void 0,
|
|
3580
3581
|
action: void 0,
|
|
3581
3582
|
handle: route.module.handle
|
|
3583
|
+
// middleware is not necessary here since we just need to know which
|
|
3584
|
+
// routes have loaders so we know what paths to prerender
|
|
3582
3585
|
};
|
|
3583
3586
|
return route.index ? {
|
|
3584
3587
|
index: true,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-router/dev",
|
|
3
|
-
"version": "0.0.0-experimental-
|
|
3
|
+
"version": "0.0.0-experimental-a383e1e6e",
|
|
4
4
|
"description": "Dev tools and CLI for React Router",
|
|
5
5
|
"homepage": "https://reactrouter.com",
|
|
6
6
|
"bugs": {
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"set-cookie-parser": "^2.6.0",
|
|
89
89
|
"valibot": "^0.41.0",
|
|
90
90
|
"vite-node": "3.0.0-beta.2",
|
|
91
|
-
"@react-router/node": "0.0.0-experimental-
|
|
91
|
+
"@react-router/node": "0.0.0-experimental-a383e1e6e"
|
|
92
92
|
},
|
|
93
93
|
"devDependencies": {
|
|
94
94
|
"@types/babel__core": "^7.20.5",
|
|
@@ -117,15 +117,15 @@
|
|
|
117
117
|
"vite": "^6.0.0",
|
|
118
118
|
"wireit": "0.14.9",
|
|
119
119
|
"wrangler": "^3.28.2",
|
|
120
|
-
"@react-router/serve": "0.0.0-experimental-
|
|
121
|
-
"react-router": "^0.0.0-experimental-
|
|
120
|
+
"@react-router/serve": "0.0.0-experimental-a383e1e6e",
|
|
121
|
+
"react-router": "^0.0.0-experimental-a383e1e6e"
|
|
122
122
|
},
|
|
123
123
|
"peerDependencies": {
|
|
124
124
|
"typescript": "^5.1.0",
|
|
125
125
|
"vite": "^5.1.0 || ^6.0.0",
|
|
126
126
|
"wrangler": "^3.28.2",
|
|
127
|
-
"@react-router/serve": "^0.0.0-experimental-
|
|
128
|
-
"react-router": "^0.0.0-experimental-
|
|
127
|
+
"@react-router/serve": "^0.0.0-experimental-a383e1e6e",
|
|
128
|
+
"react-router": "^0.0.0-experimental-a383e1e6e"
|
|
129
129
|
},
|
|
130
130
|
"peerDependenciesMeta": {
|
|
131
131
|
"@react-router/serve": {
|