本页还没有译文
本页 46 段还没译成Español,下面显示的是英文原文。Migrate from Wrangler v3 to v4
还没翻译译自英文(developers.cloudflare.com)本页 46 段都还没译
Wrangler v4 is a major release focused on updates to underlying systems and dependencies, along with improvements to keep Wrangler commands consistent and clear. Unlike previous major versions of Wrangler, which were foundational rewrites and rearchitectures — Version 4 of Wrangler includes a much smaller set of changes. If you use Wrangler today, your workflow is very unlikely to change.
While many users should expect a no-op upgrade, the following sections outline the more significant changes and steps for migrating where necessary.
Upgrade to Wrangler v4
To upgrade to the latest version of Wrangler v4 within your Worker project, run:
npm i -D wrangler@4yarn add -D wrangler@4pnpm add -D wrangler@4bun add -d wrangler@4After upgrading, you can verify the installation:
npx wrangler --versionyarn wrangler --versionpnpm wrangler --versionSummary of changes
-
Updated Node.js support policy: Node.js v16, which reached End-of-Life in 2022, is no longer supported in Wrangler v4. Wrangler now follows Node.js's official support lifecycle.
-
Upgraded esbuild version: Wrangler uses esbuild to bundle Worker code before deploying it, and was previously pinned to esbuild v0.17.19. Wrangler v4 uses esbuild v0.24, which could impact dynamic wildcard imports. Going forward, Wrangler will be periodically updating the
esbuildversion included with Wrangler, and sinceesbuildis a pre-1.0.0 tool, this may sometimes include breaking changes to how bundling works. In particular, we may bump theesbuildversion in a Wrangler minor version. -
Commands default to local mode: All commands that can run in either local or remote mode now default to local, requiring a
--remoteflag for API queries. -
Deprecated commands and configurations removed: Legacy commands, flags, and configurations are removed.
Detailed Changes
Updated Node.js support policy
Wrangler now supports only Node.js versions that align with Node.js's official lifecycle:
- Supported: Current, Active LTS, Maintenance LTS
- No longer supported: Node.js v16 (EOL in 2022)
Wrangler tests no longer run on v16, and users still on this version may encounter unsupported behavior. Users still using Node.js v16 must upgrade to a supported version to continue receiving support and compatibility with Wrangler.
Upgraded esbuild version
Wrangler v4 upgrades esbuild from v0.17.19 to v0.24, bringing improvements (such as the ability to use the using keyword with RPC) and changes to bundling behavior:
- Dynamic imports: Wildcard imports (for example,
import('./data/' + kind + '.json')) now automatically include all matching files in the bundle.
Users relying on wildcard dynamic imports may see unwanted files bundled. Prior to esbuild v0.19, import statements with dynamic paths (like import('./data/' + kind + '.json')) did not bundle all files matching the glob pattern (*.json). Only files explicitly referenced or included using find_additional_modules were bundled. With esbuild v0.19, wildcard imports now automatically bundle all files matching the glob pattern. This could result in unwanted files being bundled, so users might want to avoid wildcard dynamic imports and use explicit imports instead.
Commands default to local mode
All commands now run in local mode by default. Wrangler has many commands for accessing resources like KV and R2, but the commands were previously inconsistent in whether they ran in a local or remote environment. For example, D1 defaulted to querying a local datastore, and required the --remote flag to query via the API. KV, on the other hand, previously defaulted to querying via the API (implicitly using the --remote flag) and required a --local flag to query a local datastore. In order to make the behavior consistent across Wrangler, each command now uses the --local flag by default, and requires an explicit --remote flag to query via the API.
For example:
- Previous Behavior (Wrangler v3):
wrangler kv key getqueried remotely by default. - New Behavior (Wrangler v4):
wrangler kv key getqueries locally unless--remoteis specified.
Those using wrangler kv key and/or wrangler r2 object commands to query or write to their data store will need to add the --remote flag in order to replicate previous behavior.
Deprecated commands and configurations removed
All previously deprecated features in Wrangler v2 and in Wrangler v3 are now removed. Additionally, the following features that were deprecated during the Wrangler v3 release are also now removed:
- Legacy Assets (using
wrangler dev/deploy --legacy-assetsor thelegacy_assetsconfig file property). Instead, we recommend you migrate to Workers Static Assets. - Legacy Node.js compatibility (using
wrangler dev/deploy --node-compator thenode_compatconfig file property). Instead, use thenodejs_compatcompatibility flag. This includes the functionality from legacynode_compatpolyfills and natively implemented Node.js APIs. wrangler version. Instead, usewrangler --versionto check the current version of Wrangler.getBindingsProxy()(viaimport { getBindingsProxy } from "wrangler"). Instead, use thegetPlatformProxy()API, which takes exactly the same arguments.usage_model. This no longer has any effect, after the rollout of Workers Standard Pricing.