From d876caff010d92b162351ecb0b2f4c80d355e3bf Mon Sep 17 00:00:00 2001 From: jixinbao Date: Sat, 14 Sep 2024 15:44:27 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat(h5):=20web=20=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E8=B0=83=E6=95=B4=20audio=20=E4=B8=BA=E5=8E=9F=E7=94=9F?= =?UTF-8?q?=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/vue/transforms/index.ts | 8 ++++++- packages/uni-shared/src/tags.ts | 21 ++++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/packages/uni-cli-shared/src/vue/transforms/index.ts b/packages/uni-cli-shared/src/vue/transforms/index.ts index 992cd25f301..0e7b936a98d 100644 --- a/packages/uni-cli-shared/src/vue/transforms/index.ts +++ b/packages/uni-cli-shared/src/vue/transforms/index.ts @@ -24,8 +24,14 @@ export { defaultMatch as matchTransformModel, } from './vModel' +// 这里需要排除 audio +const isKeepAudioBuiltIn = process.env.KEEP_WEB_AUDIO_BUILT_IN === 'true' +const _BUILT_IN_TAG_NAMES = isKeepAudioBuiltIn + ? BUILT_IN_TAG_NAMES + : BUILT_IN_TAG_NAMES.filter((tag) => tag !== 'audio') + export const transformH5BuiltInComponents = createTransformTag( - BUILT_IN_TAG_NAMES.reduce>( + _BUILT_IN_TAG_NAMES.reduce>( (tags, tag) => ((tags[tag] = COMPONENT_PREFIX + tag), tags), {} ) diff --git a/packages/uni-shared/src/tags.ts b/packages/uni-shared/src/tags.ts index 4f19a748534..a9d1e8bb522 100644 --- a/packages/uni-shared/src/tags.ts +++ b/packages/uni-shared/src/tags.ts @@ -192,11 +192,30 @@ export function isUniXElement(name: string) { return /^I?Uni.*Element(?:Impl)?$/.test(name) } +let isAudioWarned = false +function isBuiltInWebComponent(tag: string) { + // 这里需要排除 audio + const isKeepAudioBuiltIn = process.env.KEEP_WEB_AUDIO_BUILT_IN === 'true' + + if (!isKeepAudioBuiltIn && 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) ) } From f3fee3cdf528a0d3abd024f53adb5988c4fb846a Mon Sep 17 00:00:00 2001 From: jixinbao Date: Sat, 14 Sep 2024 16:48:57 +0800 Subject: [PATCH 2/3] =?UTF-8?q?refactor(h5):=20=E7=A7=BB=E9=99=A4=E4=B8=8D?= =?UTF-8?q?=E5=BF=85=E8=A6=81=E7=9A=84=E7=8E=AF=E5=A2=83=E5=8F=98=E9=87=8F?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../uni-cli-shared/src/vue/transforms/index.ts | 17 +++++++---------- packages/uni-shared/src/tags.ts | 14 +------------- 2 files changed, 8 insertions(+), 23 deletions(-) diff --git a/packages/uni-cli-shared/src/vue/transforms/index.ts b/packages/uni-cli-shared/src/vue/transforms/index.ts index 0e7b936a98d..29b5acd4bc0 100644 --- a/packages/uni-cli-shared/src/vue/transforms/index.ts +++ b/packages/uni-cli-shared/src/vue/transforms/index.ts @@ -24,17 +24,14 @@ export { defaultMatch as matchTransformModel, } from './vModel' -// 这里需要排除 audio -const isKeepAudioBuiltIn = process.env.KEEP_WEB_AUDIO_BUILT_IN === 'true' -const _BUILT_IN_TAG_NAMES = isKeepAudioBuiltIn - ? BUILT_IN_TAG_NAMES - : BUILT_IN_TAG_NAMES.filter((tag) => tag !== 'audio') - 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 a9d1e8bb522..2e99976a0bd 100644 --- a/packages/uni-shared/src/tags.ts +++ b/packages/uni-shared/src/tags.ts @@ -192,22 +192,10 @@ export function isUniXElement(name: string) { return /^I?Uni.*Element(?:Impl)?$/.test(name) } -let isAudioWarned = false function isBuiltInWebComponent(tag: string) { - // 这里需要排除 audio - const isKeepAudioBuiltIn = process.env.KEEP_WEB_AUDIO_BUILT_IN === 'true' - - if (!isKeepAudioBuiltIn && tag === 'audio') { - if (!isAudioWarned) { - console.warn( - 'HBuilderX 4.28 版本起,Web 平台 Audio 组件从内置组件调整为普通组件,请参考 https://uniapp.dcloud.net.cn/component/audio.html' - ) - isAudioWarned = true - } - + if (tag === 'audio') { return false } - return isBuiltInComponent(tag) } From 750cbe43fa0800683801ae6ee5c032ff7e95d714 Mon Sep 17 00:00:00 2001 From: jixinbao Date: Sat, 14 Sep 2024 17:26:56 +0800 Subject: [PATCH 3/3] =?UTF-8?q?refactor(h5):=20=E8=A1=A5=E5=85=85=20warn?= =?UTF-8?q?=20=E8=AD=A6=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/uni-shared/src/tags.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/uni-shared/src/tags.ts b/packages/uni-shared/src/tags.ts index 2e99976a0bd..22ecd34eacf 100644 --- a/packages/uni-shared/src/tags.ts +++ b/packages/uni-shared/src/tags.ts @@ -192,8 +192,16 @@ 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)