diff --git a/packages/compiler-core/__tests__/__snapshots__/codegen.spec.ts.snap b/packages/compiler-core/__tests__/__snapshots__/codegen.spec.ts.snap index 9f8a5b6f..412311cb 100644 --- a/packages/compiler-core/__tests__/__snapshots__/codegen.spec.ts.snap +++ b/packages/compiler-core/__tests__/__snapshots__/codegen.spec.ts.snap @@ -54,7 +54,8 @@ exports[`compiler: codegen assets 1`] = ` return function render() { with (this) { const _component_Foo = _resolveComponent(\\"Foo\\") - const _component_barbaz = _resolveComponent(\\"bar-baz\\") + const _component_bar_baz = _resolveComponent(\\"bar-baz\\") + const _component_barbaz = _resolveComponent(\\"barbaz\\") const _directive_my_dir = _resolveDirective(\\"my_dir\\") return null diff --git a/packages/compiler-core/__tests__/codegen.spec.ts b/packages/compiler-core/__tests__/codegen.spec.ts index 48a89c41..d2eace42 100644 --- a/packages/compiler-core/__tests__/codegen.spec.ts +++ b/packages/compiler-core/__tests__/codegen.spec.ts @@ -89,7 +89,7 @@ describe('compiler: codegen', () => { test('assets', () => { const root = createRoot({ - components: [`Foo`, `bar-baz`], + components: [`Foo`, `bar-baz`, `barbaz`], directives: [`my_dir`] }) const { code } = generate(root, { mode: 'function' }) @@ -97,10 +97,15 @@ describe('compiler: codegen', () => { `const _component_Foo = _${helperNameMap[RESOLVE_COMPONENT]}("Foo")\n` ) expect(code).toMatch( - `const _component_barbaz = _${ + `const _component_bar_baz = _${ helperNameMap[RESOLVE_COMPONENT] }("bar-baz")\n` ) + expect(code).toMatch( + `const _component_barbaz = _${ + helperNameMap[RESOLVE_COMPONENT] + }("barbaz")\n` + ) expect(code).toMatch( `const _directive_my_dir = _${ helperNameMap[RESOLVE_DIRECTIVE] diff --git a/packages/compiler-core/src/utils.ts b/packages/compiler-core/src/utils.ts index 0f873e3a..d7820874 100644 --- a/packages/compiler-core/src/utils.ts +++ b/packages/compiler-core/src/utils.ts @@ -241,7 +241,7 @@ export function toValidAssetId( name: string, type: 'component' | 'directive' ): string { - return `_${type}_${name.replace(/[^\w]/g, '')}` + return `_${type}_${name.replace(/[^\w]/g, '_')}` } export function isEmptyExpression(node: ExpressionNode) {