Workers SDK Issue Reports

← Back to Dashboard

#10260 SSR Optimizer uses Node.js builds instead of Workers

Recommendation:KEEP OPEN
Difficulty:medium
Reasoning:

Valid bug; SSR optimizer ignores Worker conditions; multiple workarounds documented

Suggested Action:

Make SSR optimizer respect resolve.conditions

Analysis Report

Issue Review: cloudflare/workers-sdk#10260

Summary

SSR optimizer in vitest-pool-workers resolves Node.js builds of dependencies instead of Worker/browser builds, causing "No such module" errors.

Findings

  • Created: 2025-08-07
  • Updated: 2025-10-28
  • Version: @cloudflare/vitest-pool-workers 0.8.40, vitest 3.2.4
  • Component: vitest-pool-workers
  • Labels: bug, vitest
  • Comments: 4

Key Evidence

  • Reproduction repo: https://github.com/alexander-zuev/vitest-worker-jose-repro
  • Affects libraries with dual builds (jose, better-auth)
  • Error: "No such module 'node:https'" from Node.js build being used
  • Workarounds provided:
    1. Pre-build worker and point tests to built output
    2. Set ssr.noExternal: ["better-auth"]
    3. Set environments.ssr.resolve.conditions: ["worker", "browser", "module"]
  • Also affects Shopify Hydrogen projects

Recommendation

Status: KEEP OPEN

Reasoning: This is a valid bug affecting the testing experience. The SSR optimizer doesn't respect Worker/browser module conditions. Multiple workarounds exist but the root cause should be fixed.

Action: Make SSR optimizer respect resolve.conditions for Worker environments, or provide clearer documentation on the workarounds.

Suggested Comment

N/A - Workarounds documented in issue comments.

Notes & Feedback (0)

No notes yet.

Add Note