Skip to content

Commit 16d6e9e

Browse files
committed
filter out lib package
1 parent c4c2217 commit 16d6e9e

File tree

6 files changed

+26
-2
lines changed

6 files changed

+26
-2
lines changed

src/lib/agent-runner.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ export async function runPreflight(
146146
packageJson,
147147
config.detection.packageName,
148148
config.detection.packageDisplayName,
149+
config.detection.alternatePackageNames,
149150
);
150151
frameworkVersion = config.detection.getVersion(packageJson);
151152
} else {

src/lib/framework-config.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ export interface FrameworkDetection {
5555
/** Package name to check in package.json (e.g., "next", "react") */
5656
packageName: string;
5757

58+
/** Additional package names that also indicate this framework is installed (e.g., Remix for React Router). */
59+
alternatePackageNames?: string[];
60+
5861
/** Human-readable name for error messages (e.g., "Next.js") */
5962
packageDisplayName: string;
6063

src/react-router/react-router-wizard-agent.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ export const REACT_ROUTER_AGENT_CONFIG: FrameworkConfig<ReactRouterContext> = {
3434

3535
detection: {
3636
packageName: 'react-router',
37+
alternatePackageNames: ['@remix-run/react', '@remix-run/node'],
3738
packageDisplayName: 'React Router',
3839
getVersion: (packageJson: unknown) =>
3940
getPackageVersion('react-router', packageJson as PackageDotJson),

src/react-router/utils.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,12 +119,19 @@ export async function getReactRouterMode(
119119
): Promise<ReactRouterMode> {
120120
const { installDir } = options;
121121

122-
// First, get the React Router version
122+
// First, get the React Router version and check Remix packages — Remix v2 = RR v7)
123123
const packageJson = await getPackageDotJson(options);
124+
const remixVersion = getPackageVersion('@remix-run/react', packageJson);
124125
const reactRouterVersion =
125126
getPackageVersion('react-router-dom', packageJson) ||
126127
getPackageVersion('react-router', packageJson);
127128

129+
// Remix v2 IS React Router v7 framework mode, skip version prompt
130+
if (!reactRouterVersion && remixVersion) {
131+
clack.log.info('Detected Remix app (React Router v7 - Framework mode)');
132+
return ReactRouterMode.V7_FRAMEWORK;
133+
}
134+
128135
if (!reactRouterVersion) {
129136
// If we can't detect version, ask the user
130137
clack.log.info(

src/utils/app-detection.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,12 @@ async function isLikelyJsApp(dir: string): Promise<boolean> {
145145
return false;
146146
}
147147

148+
// Filter out library packages "exports", "main", or "module" fields
149+
// indicate a package that publishes code for consumption, not a runnable app.
150+
if (pkg.exports || pkg.main || pkg.module) {
151+
return false;
152+
}
153+
148154
const scripts = pkg.scripts ?? {};
149155
const appScripts = ['start', 'dev', 'serve', 'preview'];
150156
if (appScripts.some((s) => s in scripts)) {

src/utils/clack-utils.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -420,9 +420,15 @@ export async function ensurePackageIsInstalled(
420420
packageJson: PackageDotJson,
421421
packageId: string,
422422
packageName: string,
423+
alternatePackageIds?: string[],
423424
): Promise<void> {
424425
return traceStep('ensure-package-installed', async () => {
425-
const installed = hasPackageInstalled(packageId, packageJson);
426+
const installed =
427+
hasPackageInstalled(packageId, packageJson) ||
428+
(alternatePackageIds?.some((id) =>
429+
hasPackageInstalled(id, packageJson),
430+
) ??
431+
false);
426432

427433
analytics.setTag(`${packageName.toLowerCase()}-installed`, installed);
428434

0 commit comments

Comments
 (0)