[wrangler] Fix modules-watch-stub injection when bundle:false (fixes … - #15032
Conversation
🦋 Changeset detectedLatest commit: 1af6db6 The changes in this PR will be included in the next version bump. This PR includes changesets to release 3 packages
Not sure what this means? Click here to learn what changesets are. [Click here if you're a maintainer who wants to add another changeset to this PR](https://github.com/Sertug17/workers-sdk/new/fix/modules-watch-stub-no-bundle?filename=.changeset/ripe-chicken-hide.md&value=---%0A%22wrangler%22%3A%20patch%0A---%0A%0A%5Bwrangler%5D%20Fix%20modules-watch-stub%20injection%20when%20bundle%3Afalse%20(fixes%20%E2%80%A6%0A) |
|
I have read the CLA Document and I hereby sign the CLA |
|
Codeowners approval required for this PR:
Show detailed file reviewers
|
@cloudflare/autoconfig
@cloudflare/build-output-utils
@cloudflare/config
create-cloudflare
@cloudflare/deploy-helpers
@cloudflare/kv-asset-handler
miniflare
@cloudflare/pages-functions
@cloudflare/pages-shared
@cloudflare/unenv-preset
@cloudflare/vite-plugin
@cloudflare/vitest-pool-workers
@cloudflare/workers-auth
@cloudflare/workers-editor-shared
@cloudflare/workers-utils
wrangler
commit: |
|
Codeowners approval required for this PR:
Show detailed file reviewers |
workers-devprod
left a comment
There was a problem hiding this comment.
Codeowners reviews satisfied
|
thank you 🎉 |
Fixes #14845.
When
bundle: false(e.g.no_bundle = trueinwrangler.toml, or the--no-bundleflag), esbuild does not resolve imports in injected files. Previouslymodules-watch-stub.jswas injected wheneverwatch: true, which leftimport "wrangler:modules-watch"unresolved in the output, causing workerd to crash at runtime:Uncaught Error: No such module "wrangler:modules-watch"
imported from "pages-shim.js"
Reproducible with
wrangler pages devon a Nitro project using thecloudflare-modulepreset (generatesno_bundle = truein wrangler.toml).Fix: only inject the stub when
bundle: true. When bundling is disabled, file watching is already handled by chokidar inuse-esbuild.ts, so the esbuild-internal watch stub is not needed.Checkboxes:
Tests: "Additional testing not necessary because:" → the watch stub injection path is tested via existing bundleWorker unit tests; no bundle mode is already covered by chokidar