From 2d0d2d9f7a88090b4627faf8889cf26107af04f4 Mon Sep 17 00:00:00 2001 From: btea <2356281422@qq.com> Date: Sat, 14 Dec 2024 22:56:24 +0800 Subject: [PATCH] feat(compiler-sfc): transform use href add no-inline query --- .../__snapshots__/templateTransformAssetUrl.spec.ts.snap | 2 +- packages/compiler-sfc/src/template/transformAssetUrl.ts | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/compiler-sfc/__tests__/__snapshots__/templateTransformAssetUrl.spec.ts.snap b/packages/compiler-sfc/__tests__/__snapshots__/templateTransformAssetUrl.spec.ts.snap index 85ae6194a70..d132f451472 100644 --- a/packages/compiler-sfc/__tests__/__snapshots__/templateTransformAssetUrl.spec.ts.snap +++ b/packages/compiler-sfc/__tests__/__snapshots__/templateTransformAssetUrl.spec.ts.snap @@ -34,7 +34,7 @@ export function render(_ctx, _cache) { exports[`compiler sfc: transform asset url > support uri fragment 1`] = ` "import { createElementVNode as _createElementVNode, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue" -import _imports_0 from '@svg/file.svg' +import _imports_0 from '@svg/file.svg?no-inline' const _hoisted_1 = _imports_0 + '#fragment' diff --git a/packages/compiler-sfc/src/template/transformAssetUrl.ts b/packages/compiler-sfc/src/template/transformAssetUrl.ts index 6291e21bbba..e3667e3cd26 100644 --- a/packages/compiler-sfc/src/template/transformAssetUrl.ts +++ b/packages/compiler-sfc/src/template/transformAssetUrl.ts @@ -114,6 +114,13 @@ export const transformAssetUrl: NodeTransform = ( } const url = parseUrl(attr.value.content) + if ( + node.tag === 'use' && + attr.name === 'href' && + url.path?.endsWith('.svg') + ) { + url.path = url.path + '?no-inline' + } if (options.base && attr.value.content[0] === '.') { // explicit base - directly rewrite relative urls into absolute url // to avoid generating extra imports