meteor-vue / meteor-vue3

MIT License
19 stars 8 forks source link

Fix usage of components imported from other files #10

Open nathan-muir opened 2 years ago

nathan-muir commented 2 years ago

currently, importing a component from another file does not work, eg;

In main.vue

<script setup>
import Other from './other.vue';
</script>
<template>
   <Other />
</template>

In other.vue

<template>
   <div>Other Component</div>
</template>

After investigation, this is because the template-compiler isn't aware that Other is an imported component, so the template code is generating resolveComponent("Other") instead of createVNode(Other).

The fix is simply to tell the template compiler about the variables exported from the setup script (via bindingMetadata)

Be aware; When testing, meteor will keep caching files even if the compiler is updated, it's useful to run meteor reset after changing the compiler so that all files are built with the new version.