Skip to content

fix: install unresolved monorepo plugin deps#995

Draft
lttlin wants to merge 1 commit intojackwener:mainfrom
lttlin:fix/opencli/722-monorepo-plugin-deps
Draft

fix: install unresolved monorepo plugin deps#995
lttlin wants to merge 1 commit intojackwener:mainfrom
lttlin:fix/opencli/722-monorepo-plugin-deps

Conversation

@lttlin
Copy link
Copy Markdown

@lttlin lttlin commented Apr 13, 2026

Problem

Monorepo plugin installs currently run npm install --omit=dev only once at the monorepo root. When a sub-plugin declares its own runtime dependencies but the monorepo does not expose that package through root workspaces, the compiled plugin loads from ~/.opencli/monorepos/.../packages/<plugin>/... and crashes at runtime with module resolution errors such as Cannot find package 'undici'.

Root Cause

The monorepo install lifecycle assumes the root install is always sufficient for every sub-plugin. It never checks whether a sub-plugin's declared runtime dependencies are actually resolvable from that sub-plugin directory before it is finalized and linked.

Fix

Keep the existing root-level install, but add a targeted fallback for monorepo sub-plugins: if a sub-plugin's dependencies / optionalDependencies are still unresolved from its own directory after the root install, run npm install --omit=dev in that sub-plugin before finalizing it. This preserves the fast path for workspace monorepos while fixing non-workspace monorepos like the one reported in #722.

Validation

  • npx vitest run src/plugin.test.ts
  • Added coverage for the unresolved-runtime-dependency fallback in monorepo installs

Closes #722

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: cannot find undici when install plugin.

1 participant