From: edison Date: Wed, 23 Jul 2025 00:41:17 +0000 (+0800) Subject: fix(compiler-sfc): transform empty srcset w/ includeAbsolute: true (#13639) X-Git-Tag: v3.5.18~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d8e40ef7e1c20ee86b294e7cf78e2de60d12830e;p=thirdparty%2Fvuejs%2Fcore.git fix(compiler-sfc): transform empty srcset w/ includeAbsolute: true (#13639) close vitejs/vite-plugin-vue#631 --- diff --git a/packages/compiler-sfc/__tests__/__snapshots__/templateTransformSrcset.spec.ts.snap b/packages/compiler-sfc/__tests__/__snapshots__/templateTransformSrcset.spec.ts.snap index 0469ffaba8..28e0af71f7 100644 --- a/packages/compiler-sfc/__tests__/__snapshots__/templateTransformSrcset.spec.ts.snap +++ b/packages/compiler-sfc/__tests__/__snapshots__/templateTransformSrcset.spec.ts.snap @@ -16,6 +16,16 @@ export function render(_ctx, _cache) { }" `; +exports[`compiler sfc: transform srcset > transform empty srcset w/ includeAbsolute: true 1`] = ` +"import { openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue" + +const _hoisted_1 = { srcset: " " } + +export function render(_ctx, _cache) { + return (_openBlock(), _createElementBlock("img", _hoisted_1)) +}" +`; + exports[`compiler sfc: transform srcset > transform srcset 1`] = ` "import { createElementVNode as _createElementVNode, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue" import _imports_0 from './logo.png' diff --git a/packages/compiler-sfc/__tests__/templateTransformSrcset.spec.ts b/packages/compiler-sfc/__tests__/templateTransformSrcset.spec.ts index 491731f94e..68239bbd1e 100644 --- a/packages/compiler-sfc/__tests__/templateTransformSrcset.spec.ts +++ b/packages/compiler-sfc/__tests__/templateTransformSrcset.spec.ts @@ -72,6 +72,14 @@ describe('compiler sfc: transform srcset', () => { ).toMatchSnapshot() }) + test('transform empty srcset w/ includeAbsolute: true', () => { + expect( + compileWithSrcset(``, { + includeAbsolute: true, + }).code, + ).toMatchSnapshot() + }) + test('transform srcset w/ stringify', () => { const code = compileWithSrcset( `
${src}
`, diff --git a/packages/compiler-sfc/src/template/transformSrcset.ts b/packages/compiler-sfc/src/template/transformSrcset.ts index 8f00f86e3c..40fba4882b 100644 --- a/packages/compiler-sfc/src/template/transformSrcset.ts +++ b/packages/compiler-sfc/src/template/transformSrcset.ts @@ -71,6 +71,7 @@ export const transformSrcset: NodeTransform = ( const shouldProcessUrl = (url: string) => { return ( + url && !isExternalUrl(url) && !isDataUrl(url) && (options.includeAbsolute || isRelativeUrl(url))