diff --git a/packages/uni-cli-shared/src/vue/transforms/index.ts b/packages/uni-cli-shared/src/vue/transforms/index.ts index 992cd25f301..29b5acd4bc0 100644 --- a/packages/uni-cli-shared/src/vue/transforms/index.ts +++ b/packages/uni-cli-shared/src/vue/transforms/index.ts @@ -25,10 +25,13 @@ export { } from './vModel' export const transformH5BuiltInComponents = createTransformTag( - BUILT_IN_TAG_NAMES.reduce>( - (tags, tag) => ((tags[tag] = COMPONENT_PREFIX + tag), tags), - {} - ) + BUILT_IN_TAG_NAMES.reduce>((tags, tag) => { + if (tag === 'audio') { + return tags + } + tags[tag] = COMPONENT_PREFIX + tag + return tags + }, {}) ) export const transformMatchMedia = createTransformTag({ diff --git a/packages/uni-shared/src/tags.ts b/packages/uni-shared/src/tags.ts index 4f19a748534..22ecd34eacf 100644 --- a/packages/uni-shared/src/tags.ts +++ b/packages/uni-shared/src/tags.ts @@ -192,11 +192,26 @@ export function isUniXElement(name: string) { return /^I?Uni.*Element(?:Impl)?$/.test(name) } +let isAudioWarned = false + +function isBuiltInWebComponent(tag: string) { + if (tag === 'audio') { + if (!isAudioWarned) { + console.warn( + 'HBuilderX 4.28 版本起,Web 平台 Audio 组件从内置组件调整为原生元素,请参考 https://uniapp.dcloud.net.cn/component/audio.html' + ) + isAudioWarned = true + } + return false + } + return isBuiltInComponent(tag) +} + export function isH5NativeTag(tag: string) { return ( tag !== 'head' && (isHTMLTag(tag) || isSVGTag(tag)) && - !isBuiltInComponent(tag) + !isBuiltInWebComponent(tag) ) }