Cloudflare Enablement
Workers
Testing
View RSS feed
Edit this page on GitHub
Set theme to dark (⇧+D)

Wrangler Changelog

​​ 2024-07-04

​​ 3.63.1

  • #6192 b879ce4 Thanks @petebacondarwin ! - fix: do not report D1 user errors to Sentry

  • #6150 d993409 Thanks @CarmenPopoviciu ! - fix: Fix pages dev watch mode [_worker.js]

    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 fixes all the aforementioned issues.

​​ 2024-07-03

​​ 3.63.0

  • #6167 e048958 Thanks @threepointone ! - feature: alias modules in the worker

    Sometimes, users want to replace modules with other modules. This commonly happens inside a third party dependency itself. As an example, a user might have imported node-fetch, which will probably never work in workerd. You can use the alias config to replace any of these imports with a module of your choice.

    Let’s say you make a fetch-nolyfill.js

    You can then configure wrangler.toml like so:

    So any calls to import fetch from 'node-fetch'; will simply use our nolyfilled version.

    You can also pass aliases in the cli (for both dev and deploy). Like:

  • #6073 7ed675e Thanks @geelen ! - Added D1 export support for local databases

  • #6149 35689ea Thanks @RamIdeas ! - refactor: React-free hotkeys implementation, behind the --x-dev-env flag

  • #6022 7951815 Thanks @CarmenPopoviciu ! - fix: Fix pages dev watch mode [Functions]

    The watch mode in pages dev for Pages Functions projects is currently partially broken, as it only watches for file system changes in the “/functions” directory, but not for changes in any of the Functions’ dependencies. This means that given a Pages Function math-is-fun.ts, defined as follows:

    import { ADD } from "../math/add";
    
    export async function onRequest() {
    	return new Response(`${ADD} is fun!`);
    }
    

    pages dev will reload for any changes in math-is-fun.ts itself, but not for any changes in math/add.ts, 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 fixes all these things, plus adds some extra polish to the pages dev watch mode experience.

  • #6164 4cdad9b Thanks @threepointone ! - fix: use account id for listing zones

    Fixes https://github.com/cloudflare/workers-sdk/issues/4944

    Trying to fetch /zones fails when it spans more than 500 zones. The fix to use an account id when doing so. This patch passes the account id to the zones call, threading it through all the functions that require it.

  • #6180 b994604 Thanks @Skye-31 ! - Fix: pass env to getBindings to support reading .dev.vars.{environment}

    https://github.com/cloudflare/workers-sdk/pull/5612 added support for selecting the environment of config used, but it missed passing it to the code that reads .dev.vars.{environment}

    Closes #5641

  • #6124 d03b102 Thanks @RamIdeas ! - feat: url and inspectorUrl properties have been exposed on the worker object returned by new unstable_DevEnv().startWorker(options)

  • #6147 02dda3d Thanks @penalosa ! - refactor: React free dev registry

  • #6127 1568c25 Thanks @DaniFoldi ! - fix: Bump ws dependency

  • #6140 4072114 Thanks @petebacondarwin ! - fix: add extra error logging to auth response errors

  • #6160 9466531 Thanks @sm-bean ! - fix: removes unnecessary wrangler tail warning against resetting durable object

    fixes https://jira.cfdata.org/browse/STOR-3318

  • #6142 9272ef5 Thanks @dario-piotrowicz ! - fix: improve the getPlatformProxy configPath option ts-doc comment to clarify its behavior

  • Updated dependencies [ 42a7930 , 7ed675e , 1568c25 ]:

​​ 2024-06-25

​​ 3.62.0

  • #5950 0075621 Thanks @WalshyDev ! - feat: add wrangler versions secret put, wrangler versions secret bulk and wrangler versions secret list

    wrangler versions secret put allows for you to add/update a secret even if the latest version is not fully deployed. A new version with this secret will be created, the existing secrets and config are copied from the latest version.

    wrangler versions secret bulk allows you to bulk add/update multiple secrets at once, this behaves the same as secret put and will only make one new version.

    wrangler versions secret list lists the secrets available to the currently deployed versions. wrangler versions secret list --latest-version or wrangler secret list will list for the latest version.

    Additionally, we will now prompt for extra confirmation if attempting to rollback to a version with different secrets than the currently deployed.

  • #6118 1621992 Thanks @WalshyDev ! - fix: rollback in the case of a secret change, the prompt meant to show was not showing due to the spinner in an interactive env. It will now properly show.

    chore: improve the view of wrangler versions view and change up copy a little for versions secret commands.

  • #6105 26855f3 Thanks @helloimalastair ! - feat: Add help messages to all invalid r2 commands

  • #3735 9c7df38 Thanks @lrapoport-cf ! - chore: Cleanup wrangler --help output

    This commit cleans up and standardizes the look and feel of all wrangler commands as displayed by wrangler --help and wrangler <cmd> --help.

  • #6080 e2972cf Thanks @threepointone ! - chore: run eslint (with react config) on workers-playground/wrangler

    This enables eslint (with our react config) for the workers-playground project. Additionally, this enables the react-jsx condition in relevant tsconfig/eslint config, letting us write jsx without having React in scope.

  • #6001 d39d595 Thanks @penalosa ! - chore: changes to how wrangler dev launches your worker, behind the experimental --x-dev-env flag

  • #5214 05c5607 Thanks @penalosa ! - feat: Experimental file based service discovery when running multiple Wrangler instances locally. To try it out, make sure all your local Wrangler instances are running with the --x-registry flag.

  • Updated dependencies [ 7d02856 , d4e1e9f ]:

​​ 2024-06-18

​​ 3.61.0

  • #5995 374bc44 Thanks @petebacondarwin ! - feat: allow Durable Object migrations to be overridable in environments

    By making the migrations key inheritable, users can provide different migrations for each wrangler.toml environment.

    Resolves #729

  • #6039 dc597a3 Thanks @petebacondarwin ! - fix: hybrid nodejs compat now supports requiring the default export of a CJS module

    Fixes #6028

  • #6051 15aff8f Thanks @threepointone ! - fix: Don’t check expiry dates on custom certs

    Fixes https://github.com/cloudflare/workers-sdk/issues/5964

    For wrangler dev, we don’t have to check whether certificates have expired when they’re provided by the user.

  • #6052 b4c0233 Thanks @threepointone ! - chore: Add .wrangler and .DS_Store to .gitignore generated by wrangler init

    This commit adds a small QOL improvement to init (to be deprecated in the future), for those who still use this wrangler command.

  • #6050 a0c3327 Thanks @threepointone ! - chore: Normalize more deps

    This is the last of the patches that normalize dependencies across the codebase. In this batch: ws, vitest, zod , rimraf, @types/rimraf, ava, source-map, glob, cookie, @types/cookie, @microsoft/api-extractor, @types/mime, @types/yargs, devtools-protocol, @vitest/ui, execa, strip-ansi

    This patch also sorts dependencies in every package.json

  • #6029 f5ad1d3 Thanks @threepointone ! - chore: Normalize some dependencies in workers-sdk

    This is the first of a few expected patches that normalize dependency versions, This normalizes undici, concurrently, @types/node, react, react-dom, @types/react, @types/react-dom, eslint, typescript. There are no functional code changes (but there are a couple of typecheck fixes).

  • #6046 c643a81 Thanks @threepointone ! - chore: Normalize more dependencies.

    Follow up to https://github.com/cloudflare/workers-sdk/pull/6029 , this normalizes some more dependencies : get-port, chalk, yargs, toucan-js, @typescript-eslint/parser, @typescript-eslint/eslint-plugin, esbuild-register, hono, glob-to-regexp, @cloudflare/workers-types

  • #6058 31cd51f Thanks @threepointone ! - chore: Quieter builds

    This patch cleans up warnings we were seeing when doing a full build. Specifically:

    • fixtures/remix-pages-app had a bunch of warnings about impending features that it should be upgraded to, so I did that. (tbh this one needs a full upgrade of packages, but we’ll get to that later when we’re upgrading across the codebase)
    • updated @microsoft/api-extractor so it didn’t complain that it didn’t match the typescript version (that we’d recently upgraded)
    • it also silenced a bunch of warnings when exporting types from wrangler. We’ll need to fix those, but we’ll do that when we work on unstable_dev etc.
    • workers-playground was complaining about the size of the bundle being generated, so I increased the limit on it
  • #6043 db66101 Thanks @threepointone ! - fix: avoid esbuild warning when running dev/bundle

    I’ve been experimenting with esbuild 0.21.4 with wrangler. It’s mostly been fine. But I get this warning every time

    ▲ [WARNING] Import "__INJECT_FOR_TESTING_WRANGLER_MIDDLEWARE__" will always be undefined because there is no matching export in "src/index.ts" [import-is-undefined]
    
        .wrangler/tmp/bundle-Z3YXTd/middleware-insertion-facade.js:8:23:
          8 │ .....(OTHER_EXPORTS.__INJECT_FOR_TESTING_WRANGLER_MIDDLEWARE__ ?? []),
            ╵
    

    This is because esbuild@0.18.5 enabled a warning by default whenever an undefined import is accessed on an imports object. However we abuse imports to inject stuff in middleware.test.ts. A simple fix is to only inject that code in tests.

  • #6062 267761b Thanks @WalshyDev ! - fix: typo in wrangler d1 execute saying “Databas” instead of “Database”

  • #6064 84e6aeb Thanks @helloimalastair ! - fix: Wrangler is now able to upload files to local R2 buckets above the 300 MiB limit

  • Updated dependencies [ a0c3327 , f5ad1d3 , 31cd51f ]:

​​ 2024-06-14

​​ 3.60.3

  • #6025 122ef06 Thanks @IgorMinar ! - fix: avoid path collisions between performance and Performance Node.js polyfills

    It turns out that ESBuild paths are case insensitive, which can result in path collisions between polyfills for globalThis.performance and globalThis.Performance, etc.

    This change ensures that we encode all global names to lowercase and decode them appropriately.

  • #6009 169a9fa Thanks @RamIdeas ! - fix: reduce the number of parallel file reads on Windows to avoid EMFILE type errors

    Fixes #1586

  • 53acdbc Thanks @petebacondarwin ! - fix: warn if user tries normal deploy when in the middle of a gradual version rollout

  • Updated dependencies [ c4146fc ]: