fix(web): stub all static asset extensions (.svg, .png, fonts) in ESM loader
Some checks failed
CI / Lint (push) Has been cancelled
CI / Typecheck (push) Has been cancelled
CI / Broker tests (Postgres) (push) Has been cancelled
CI / Docker build (linux/amd64) (push) Has been cancelled

This commit is contained in:
Alejandro Gutiérrez
2026-04-09 01:09:38 +01:00
parent 471e88b3e6
commit c080bc517f

View File

@@ -1,9 +1,9 @@
/** /**
* Node.js ESM custom loader — stubs .css imports as empty modules. * Node.js ESM custom loader — stubs static asset imports as empty modules.
* *
* Next.js 16 does route collection in raw Node ESM (not webpack/turbopack). * Next.js 16 does route collection in raw Node ESM (not webpack/turbopack).
* Payload CMS dependencies import .css files which Node can't handle. * Payload CMS deps import .css, .scss, .svg, and other assets that Node
* This loader intercepts .css resolutions and returns an empty module. * can't handle. This loader intercepts those and returns empty modules.
* *
* Usage: NODE_OPTIONS="--import ./apps/web/css-stub-loader.mjs" * Usage: NODE_OPTIONS="--import ./apps/web/css-stub-loader.mjs"
*/ */
@@ -13,7 +13,7 @@ import { register } from "node:module";
register( register(
"data:text/javascript," + "data:text/javascript," +
encodeURIComponent(` encodeURIComponent(`
const STYLE_RE = /\\.(css|scss|sass|less)$/; const STYLE_RE = /\\.(css|scss|sass|less|svg|png|jpg|jpeg|gif|webp|ico|woff|woff2|ttf|eot|otf)$/;
export function resolve(specifier, context, nextResolve) { export function resolve(specifier, context, nextResolve) {
if (STYLE_RE.test(specifier)) { if (STYLE_RE.test(specifier)) {