You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用parcel-plugin-vue编译后.vue组件运行时为何显示undefined?

解决Parcel编译Vue组件后组件为undefined的问题

嘿,我一眼就看出问题所在了——你在导入组件的时候用了命名导入,但你的welcome.vue里是用默认导出的方式暴露组件的,这就导致运行时Welcome变成undefined了!

问题根源

在main.js里你写的是:

import { Welcome } from './app/widgets/welcome/welcome.vue';

这种带花括号的写法是用来导入命名导出的内容,但你的welcome.vue的<script>部分是:

<script>
export default {
  components: {}
}
</script>

这里用的是export default(默认导出),两者不匹配,自然拿不到正确的组件实例。

修复方案

1. 修正导入方式

把命名导入改成默认导入,去掉花括号即可:

import Welcome from './app/widgets/welcome/welcome.vue';

2. 修正Vue实例的template配置

另外还有个小细节:Vue的template选项需要的是模板字符串,而不是组件对象本身。你原来直接写template: Welcome是错误的,得改成使用组件标签的模板:

function startVue() {
  new Vue({
    el: '#app',
    template: '<Welcome/>',
    components: { Welcome }
  });
}

或者更推荐用render函数,写法更简洁高效:

function startVue() {
  new Vue({
    el: '#app',
    render: h => h(Welcome)
  });
}

验证修复

修改完成后,重新运行你的编译命令:

./node_modules/.bin/parcel index.html

现在浏览器应该能正常显示Welcome标题了。

内容的提问来源于stack exchange,提问作者Richard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:48:00