Skip to content

Commit b3f2628

Browse files
james-elicxNuroDev
andauthored
[wrangler] Preserve tree-shaking across workspace package boundaries (#15406)
Co-authored-by: Ben <4991309+NuroDev@users.noreply.github.com>
1 parent 90b1d08 commit b3f2628

24 files changed

Lines changed: 125 additions & 39 deletions

File tree

‎.changeset/lean-bundles-shake.md‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
"@cloudflare/workers-utils": patch
3+
"miniflare": patch
4+
"wrangler": patch
5+
---
6+
7+
Reduce the installed bundle sizes of Wrangler and Miniflare
8+
9+
Wrangler now resolves bundled workspace dependencies from source during monorepo builds so unused exports can be removed. Miniflare, its shared CLI and container dependencies now use granular `@cloudflare/workers-utils` entry points instead of loading the package barrel, reducing the raw Wrangler and Miniflare artifacts by 6.16 MiB (31.4%) and 1.06 MiB (22.9%) respectively without changing runtime behavior or installed dependencies.

‎packages/cli/check-macos-version.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import os from "node:os";
2-
import { UserError } from "@cloudflare/workers-utils";
2+
import { UserError } from "@cloudflare/workers-utils/errors";
33
import ci from "ci-info";
44

55
/**

‎packages/containers-shared/src/build.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { spawn } from "node:child_process";
22
import { readFileSync } from "node:fs";
3-
import { UserError } from "@cloudflare/workers-utils";
3+
import { UserError } from "@cloudflare/workers-utils/errors";
44
import { verifyDockerInstalled } from "./utils";
55
import type {
66
BuildArgs,

‎packages/containers-shared/src/images.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { UserError } from "@cloudflare/workers-utils";
1+
import { UserError } from "@cloudflare/workers-utils/errors";
22
import { buildImage } from "./build";
33
import { ExternalRegistryKind } from "./client/models/ExternalRegistryKind";
44
import { getCloudflareContainerRegistry } from "./knobs";
@@ -16,7 +16,7 @@ import type {
1616
ViteLogger,
1717
WranglerLogger,
1818
} from "./types";
19-
import type { ComplianceConfig } from "@cloudflare/workers-utils";
19+
import type { ComplianceConfig } from "@cloudflare/workers-utils/compliance";
2020

2121
export const DEFAULT_CONTAINER_EGRESS_INTERCEPTOR_IMAGE =
2222
"cloudflare/proxy-everything:3cb1195@sha256:0ef6716c52430096900b150d84a3302057d6cd2319dae7987128c85d0733e3c8";

‎packages/containers-shared/src/inspect.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { spawn } from "node:child_process";
2-
import { UserError } from "@cloudflare/workers-utils";
2+
import { UserError } from "@cloudflare/workers-utils/errors";
33

44
export async function dockerImageInspect(
55
dockerPath: string,

‎packages/containers-shared/src/knobs.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import {
22
COMPLIANCE_REGION_CONFIG_UNKNOWN,
33
getComplianceRegionSubdomain,
4-
} from "@cloudflare/workers-utils";
4+
} from "@cloudflare/workers-utils/compliance";
55
import { MF_DEV_CONTAINER_PREFIX } from "./registry";
6-
import type { ComplianceConfig } from "@cloudflare/workers-utils";
6+
import type { ComplianceConfig } from "@cloudflare/workers-utils/compliance";
77

88
/**
99
* Returns the managed container registry for the configured API environment and compliance region.

‎packages/containers-shared/src/login.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { spawn } from "node:child_process";
2-
import { UserError } from "@cloudflare/workers-utils";
2+
import { UserError } from "@cloudflare/workers-utils/errors";
33
import { ImageRegistriesService, ImageRegistryPermissions } from "./client";
44
import { OpenAPI } from "./client/core/OpenAPI";
55

‎packages/containers-shared/src/registry.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { getCloudflareContainerRegistry } from "./knobs";
2-
import type { ComplianceConfig } from "@cloudflare/workers-utils";
2+
import type { ComplianceConfig } from "@cloudflare/workers-utils/compliance";
33

44
/**
55
* Adds the Cloudflare account namespace to an image tag in the managed registry.

‎packages/containers-shared/src/utils.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
import { randomUUID } from "node:crypto";
88
import { existsSync } from "node:fs";
99
import { release } from "node:os";
10-
import { UserError } from "@cloudflare/workers-utils";
10+
import { UserError } from "@cloudflare/workers-utils/errors";
1111
import { dockerImageInspect } from "./inspect";
1212
import type { ContainerDevOptions } from "./types";
1313

‎packages/miniflare/src/index.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import { setTimeout as wait } from "node:timers/promises";
1010
import util from "node:util";
1111
import zlib from "node:zlib";
1212
import { checkMacOSVersion } from "@cloudflare/cli-shared-helpers";
13-
import { removeDir, removeDirSync } from "@cloudflare/workers-utils";
14-
import { formatZodError } from "@cloudflare/workers-utils";
13+
import { removeDir, removeDirSync } from "@cloudflare/workers-utils/fs-helpers";
14+
import { formatZodError } from "@cloudflare/workers-utils/zod-format";
1515
import { $ as colors$, bold, dim, green, yellow } from "kleur/colors";
1616
import stoppable from "stoppable";
1717
import { getGlobalDispatcher, Pool } from "undici";

0 commit comments

Comments
 (0)