From 57b397c4aa3d3c657e0117c2468800d627049c8d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=9B=A8=E6=BA=AA?=
 <84778445+yuxi-ovo@users.noreply.github.com>
Date: Thu, 23 Jan 2025 20:02:09 +0800
Subject: [PATCH] feat: add support for `.jxl` (#18855)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Co-authored-by: 翠 / green <green@sapphi.red>
---
 packages/vite/client.d.ts               | 4 ++++
 packages/vite/src/node/constants.ts     | 1 +
 packages/vite/src/node/plugins/asset.ts | 2 ++
 3 files changed, 7 insertions(+)

diff --git a/packages/vite/client.d.ts b/packages/vite/client.d.ts
index 16e2b167dec544..102e69c4bb3a25 100644
--- a/packages/vite/client.d.ts
+++ b/packages/vite/client.d.ts
@@ -106,6 +106,10 @@ declare module '*.cur' {
   const src: string
   export default src
 }
+declare module '*.jxl' {
+  const src: string
+  export default src
+}
 
 // media
 declare module '*.mp4' {
diff --git a/packages/vite/src/node/constants.ts b/packages/vite/src/node/constants.ts
index beffeede6ffc31..5a9dc7f935df26 100644
--- a/packages/vite/src/node/constants.ts
+++ b/packages/vite/src/node/constants.ts
@@ -133,6 +133,7 @@ export const KNOWN_ASSET_TYPES = [
   'webp',
   'avif',
   'cur',
+  'jxl',
 
   // media
   'mp4',
diff --git a/packages/vite/src/node/plugins/asset.ts b/packages/vite/src/node/plugins/asset.ts
index b9447d9cf17f68..ac284835b34af8 100644
--- a/packages/vite/src/node/plugins/asset.ts
+++ b/packages/vite/src/node/plugins/asset.ts
@@ -57,6 +57,8 @@ export function registerCustomMime(): void {
   mrmime.mimes['flac'] = 'audio/flac'
   // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
   mrmime.mimes['eot'] = 'application/vnd.ms-fontobject'
+  // https://github.com/lukeed/mrmime/issues/10
+  mrmime.mimes['jxl'] = 'image/jxl'
 }
 
 export function renderAssetUrlInJS(