cloudflare / workers-sdk

⛅️ Home to Wrangler, the CLI for Cloudflare Workers®
https://developers.cloudflare.com/workers/
Apache License 2.0
2.41k stars 590 forks source link

fix(wrangler): Fix `pages dev` watch mode [_worker.js] #6150

Open CarmenPopoviciu opened 5 days ago

CarmenPopoviciu commented 5 days ago

What this PR solves / how to test

The watch mode in pages dev for Advanced Mode projects is currently partially broken, as it only watches for changes in the _worker.js file, but not for changes in any of its imported dependencies. This means that given the following _worker.js file

import { graham } from "./graham-the-dog";
export default {
    fetch(request, env) {
    return new Response(graham)
    }
}

pages dev will reload for any changes in the _worker.js file itself, but not for any changes in graham-the-dog.js, which is its dependency.

Similarly, pages dev will not reload for any changes in non-JS module imports, such as wasm/html/binary module imports.

This commit addresses all the aforementioned issues.

Fixes #4824

How we tested the changes

// TODO

Author has addressed the following

changeset-bot[bot] commented 5 days ago

🦋 Changeset detected

Latest commit: b4006823e7ddeb4b5d8e656ba7f2f63756fe3602

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages | Name | Type | | ------------------------------- | ----- | | wrangler | Patch | | @cloudflare/vitest-pool-workers | Patch |

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

github-actions[bot] commented 5 days ago

A wrangler prerelease is available for testing. You can install this latest build in your project with:

npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9672428697/npm-package-wrangler-6150

You can reference the automatically updated head of this PR with:

npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/prs/6150/npm-package-wrangler-6150

Or you can use npx with this latest build directly:

npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9672428697/npm-package-wrangler-6150 dev path/to/script.js
Additional artifacts: ```sh npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9672428697/npm-package-create-cloudflare-6150 --no-auto-update ``` ```sh npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9672428697/npm-package-cloudflare-kv-asset-handler-6150 ``` ```sh npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9672428697/npm-package-miniflare-6150 ``` ```sh npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9672428697/npm-package-cloudflare-pages-shared-6150 ``` ```sh npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9672428697/npm-package-cloudflare-vitest-pool-workers-6150 ``` Note that these links will no longer work once [the GitHub Actions artifact expires](https://docs.github.com/en/organizations/managing-organization-settings/configuring-the-retention-period-for-github-actions-artifacts-and-logs-in-your-organization).

wrangler@3.62.0 includes the following runtime dependencies:

Package Constraint Resolved
miniflare workspace:* 3.20240620.0
workerd 1.20240620.1 1.20240620.1
workerd --version 1.20240620.1 2024-06-20

Please ensure constraints are pinned, and miniflare/workerd minor versions match.