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. 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 diff --git a/packages/react-router-dev/config/config.ts b/packages/react-router-dev/config/config.ts index 5c130eb6cf..5057b1b8c3 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. Please add a package.json, or provide a custom entry.server.tsx/jsx file in your app directory.` + ); + } + + 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.`