Преглед изворни кода

fix(compiler-core): assest id (#190)

* fix(compile-core): asset id

* test(compile-core): asset id
月迷津渡 пре 6 година
родитељ
комит
f71d252ffe

+ 2 - 1
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

+ 7 - 2
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]

+ 1 - 1
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) {