From 05e3c43e29f30da5548bd8f311ea477eeafc3555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Guti=C3=A9rrez?= <35082514+alezmad@users.noreply.github.com> Date: Thu, 9 Apr 2026 13:01:00 +0100 Subject: [PATCH] fix(web): scope webpack SVG loader to packages/ui only MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Exclude app/ SVGs (icon.svg, opengraph) from @svgr/webpack — Next.js metadata loader handles those. Only transform flag/logo SVGs from packages/ui/. Co-Authored-By: Claude Opus 4.6 (1M context) --- apps/web/next.config.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/apps/web/next.config.ts b/apps/web/next.config.ts index 958aebd..8e9abb8 100644 --- a/apps/web/next.config.ts +++ b/apps/web/next.config.ts @@ -102,10 +102,19 @@ const config: NextConfig = { }, }, - // Webpack SVG loader (used when TURBOPACK=0 for production builds) + // Webpack SVG loader (used when TURBOPACK=0 for production builds). + // Exclude app/ dir SVGs (icon.svg, opengraph-image) — Next.js metadata + // loader handles those. Only process package SVGs (flags, logos). webpack(config) { + const existingSvgRule = config.module.rules.find( + (rule: { test?: RegExp }) => rule.test?.test?.(".svg"), + ); + if (existingSvgRule) { + existingSvgRule.exclude = /packages\/ui\/.*\.svg$/; + } config.module.rules.push({ test: /\.svg$/, + include: /packages\/ui\//, use: ["@svgr/webpack"], }); return config;