From c31d2ebae06519c9784131e8c8ca48cbcbf7643e Mon Sep 17 00:00:00 2001 From: addielaruee Date: Wed, 19 Aug 2026 23:30:37 +1000 Subject: [PATCH] fix(shared): Declare package as side-effect-free for tree-shaking @clerk/shared omitted the "sideEffects" field, so bundlers had to assume every module in the package might have side effects and could not drop unused exports reached through @clerk/nextjs. Its published source has no import-time side effects: no CSS or bare side-effect imports, and the only globalThis write (in createClerkDevCache) runs lazily when the function is called rather than on import. Declaring "sideEffects": false lets bundlers tree-shake unused @clerk/shared exports, matching @clerk/nextjs and the other framework packages that already set it. Refs #9475 --- .changeset/shared-sideeffects-false.md | 5 +++++ packages/shared/package.json | 1 + 2 files changed, 6 insertions(+) create mode 100644 .changeset/shared-sideeffects-false.md diff --git a/.changeset/shared-sideeffects-false.md b/.changeset/shared-sideeffects-false.md new file mode 100644 index 00000000000..7ce7c65d943 --- /dev/null +++ b/.changeset/shared-sideeffects-false.md @@ -0,0 +1,5 @@ +--- +'@clerk/shared': patch +--- + +Declare `@clerk/shared` as side-effect-free (`"sideEffects": false`) so bundlers can tree-shake unused exports from the package. diff --git a/packages/shared/package.json b/packages/shared/package.json index 1d0c5597711..58118aba583 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -9,6 +9,7 @@ }, "license": "MIT", "author": "Clerk", + "sideEffects": false, "exports": { ".": { "import": {