diff --git a/.changeset/afraid-mice-remain.md b/.changeset/afraid-mice-remain.md new file mode 100644 index 00000000000..bf33950ad8b --- /dev/null +++ b/.changeset/afraid-mice-remain.md @@ -0,0 +1,5 @@ +--- +"@remix-run/dev": patch +--- + +look for @remix-run/serve in devDependencies when running remix dev diff --git a/packages/remix-dev/cli/commands.ts b/packages/remix-dev/cli/commands.ts index 0b16b9828b0..17dec451413 100644 --- a/packages/remix-dev/cli/commands.ts +++ b/packages/remix-dev/cli/commands.ts @@ -540,7 +540,7 @@ let resolveDevServe = async ( )}`; let usingRemixAppServer = - getAppDependencies(config)["@remix-run/serve"] !== undefined; + getAppDependencies(config, true)["@remix-run/serve"] !== undefined; if (!usingRemixAppServer) { console.error( [ diff --git a/packages/remix-dev/dependencies.ts b/packages/remix-dev/dependencies.ts index 6e4fde7920b..610f1f85300 100644 --- a/packages/remix-dev/dependencies.ts +++ b/packages/remix-dev/dependencies.ts @@ -5,14 +5,27 @@ import type { RemixConfig } from "./config"; type PackageDependencies = { [packageName: string]: string }; -function getPackageDependencies(packageJsonFile: string): PackageDependencies { +function getPackageDependencies( + packageJsonFile: string, + includeDev?: boolean +): PackageDependencies { let pkg = JSON.parse(fs.readFileSync(packageJsonFile, "utf8")); - return pkg?.dependencies || {}; + let deps = pkg?.dependencies || {}; + + if (includeDev) { + Object.assign(deps, pkg?.devDependencies || {}); + } + + return deps; } -export function getAppDependencies(config: RemixConfig): PackageDependencies { +export function getAppDependencies( + config: RemixConfig, + includeDev?: boolean +): PackageDependencies { return getPackageDependencies( - path.resolve(config.rootDirectory, "package.json") + path.resolve(config.rootDirectory, "package.json"), + includeDev ); }