From 08e9f1822faa42d0f392d7354b7c7be82703a655 Mon Sep 17 00:00:00 2001 From: Hari Date: Mon, 1 Sep 2025 16:00:38 +0100 Subject: [PATCH 1/2] feat: hashing css names by filename picks either filename or component name or css texts --- packages/svelte/src/compiler/validate-options.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/svelte/src/compiler/validate-options.js b/packages/svelte/src/compiler/validate-options.js index 2b727ad093..23ef389525 100644 --- a/packages/svelte/src/compiler/validate-options.js +++ b/packages/svelte/src/compiler/validate-options.js @@ -70,8 +70,10 @@ const component_options = { return input; }), - cssHash: fun(({ css, hash }) => { - return `svelte-${hash(css)}`; + cssHash: fun(({ css, filename, name, hash }) => { + //either use extracted filename or component name + filename = filename ? filename.replace(/^.*[\\/]/, '') : name; + return `svelte-${hash(filename ?? css )}`; }), // TODO this is a sourcemap option, would be good to put under a sourcemap namespace From 18f4b4d13d386c07f20a11f763cab49ddae4794b Mon Sep 17 00:00:00 2001 From: Hari Date: Mon, 1 Sep 2025 16:04:18 +0100 Subject: [PATCH 2/2] feat: fix prettier errors --- .changeset/red-news-fold.md | 5 +++++ packages/svelte/src/compiler/validate-options.js | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changeset/red-news-fold.md diff --git a/.changeset/red-news-fold.md b/.changeset/red-news-fold.md new file mode 100644 index 0000000000..ece248ba8e --- /dev/null +++ b/.changeset/red-news-fold.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +feat: added filename for css hasing diff --git a/packages/svelte/src/compiler/validate-options.js b/packages/svelte/src/compiler/validate-options.js index 23ef389525..ca32b7b4aa 100644 --- a/packages/svelte/src/compiler/validate-options.js +++ b/packages/svelte/src/compiler/validate-options.js @@ -71,9 +71,9 @@ const component_options = { }), cssHash: fun(({ css, filename, name, hash }) => { - //either use extracted filename or component name + //either use extracted filename or component name filename = filename ? filename.replace(/^.*[\\/]/, '') : name; - return `svelte-${hash(filename ?? css )}`; + return `svelte-${hash(filename ?? css)}`; }), // TODO this is a sourcemap option, would be good to put under a sourcemap namespace