From 1ddef88df0ec1499361ed4056cfa8c95521dabdb Mon Sep 17 00:00:00 2001 From: Mark Malstrom Date: Tue, 3 Jun 2025 17:16:40 -0500 Subject: [PATCH 1/4] fix(dev): skip package.json check when custom server entry --- packages/react-router-dev/config/config.ts | 32 +++++++++++----------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/react-router-dev/config/config.ts b/packages/react-router-dev/config/config.ts index 5c130eb6cf..c412fce2c7 100644 --- a/packages/react-router-dev/config/config.ts +++ b/packages/react-router-dev/config/config.ts @@ -844,25 +844,25 @@ export async function resolveEntryFiles({ let entryServerFile: string; let entryClientFile = userEntryClientFile || "entry.client.tsx"; - let packageJsonPath = findEntry(rootDirectory, "package", { - extensions: [".json"], - absolute: true, - walkParents: true, - }); - - if (!packageJsonPath) { - throw new Error( - `Could not find package.json in ${rootDirectory} or any of its parent directories` - ); - } - - let packageJsonDirectory = Path.dirname(packageJsonPath); - let pkgJson = await PackageJson.load(packageJsonDirectory); - let deps = pkgJson.content.dependencies ?? {}; - if (userEntryServerFile) { entryServerFile = userEntryServerFile; } else { + let packageJsonPath = findEntry(rootDirectory, "package", { + extensions: [".json"], + absolute: true, + walkParents: true, + }); + + if (!packageJsonPath) { + throw new Error( + `Could not find package.json in ${rootDirectory} or any of its parent directories` + ); + } + + let packageJsonDirectory = Path.dirname(packageJsonPath); + let pkgJson = await PackageJson.load(packageJsonDirectory); + let deps = pkgJson.content.dependencies ?? {}; + if (!deps["@react-router/node"]) { throw new Error( `Could not determine server runtime. Please install @react-router/node, or provide a custom entry.server.tsx/jsx file in your app directory.` From 879db62f31aae8e76c4259fdb746791ba19254e6 Mon Sep 17 00:00:00 2001 From: Mark Malstrom Date: Sat, 7 Jun 2025 11:42:50 -0500 Subject: [PATCH 2/4] Add markmals to contributors.yml --- contributors.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/contributors.yml b/contributors.yml index a603914de0..f7cc03ee2c 100644 --- a/contributors.yml +++ b/contributors.yml @@ -223,6 +223,7 @@ - marc2332 - markdalgleish - markivancho +- markmals - maruffahmed - marvinruder - mathpaquette From bf5790a391f3c12f2be6b912558a0eb3f6c32f52 Mon Sep 17 00:00:00 2001 From: Mark Malstrom Date: Thu, 12 Jun 2025 18:26:57 -0500 Subject: [PATCH 3/4] Add changeset --- .changeset/large-points-arrive.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/large-points-arrive.md diff --git a/.changeset/large-points-arrive.md b/.changeset/large-points-arrive.md new file mode 100644 index 0000000000..ea82ec3435 --- /dev/null +++ b/.changeset/large-points-arrive.md @@ -0,0 +1,5 @@ +--- +"@react-router/dev": patch +--- + +Skip `package.json` resolution checks when a custom `entry.server.(j|t)sx` file is provided. From 233b0e056b527c339ef42d03d3985203f9707861 Mon Sep 17 00:00:00 2001 From: Mark Dalgleish Date: Mon, 16 Jun 2025 09:25:04 +1000 Subject: [PATCH 4/4] Improve missing package.json error message --- packages/react-router-dev/config/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-router-dev/config/config.ts b/packages/react-router-dev/config/config.ts index c412fce2c7..5057b1b8c3 100644 --- a/packages/react-router-dev/config/config.ts +++ b/packages/react-router-dev/config/config.ts @@ -855,7 +855,7 @@ export async function resolveEntryFiles({ if (!packageJsonPath) { throw new Error( - `Could not find package.json in ${rootDirectory} or any of its parent directories` + `Could not find package.json in ${rootDirectory} or any of its parent directories. Please add a package.json, or provide a custom entry.server.tsx/jsx file in your app directory.` ); }