vue3 组件 has no default export
0 条评论在 Vue 3 项目中遇到 “has no default export” 的提示,通常不是因为你的代码写错了,而是由于 VSCode 的 Vue 扩展 Vetur 对 Vue 3 和 <script setup> 语法支持不完善导致的。
别担心,这里有几个解决方法,你可以根据情况尝试。
推荐的解决方案 🥇
最彻底和推荐的方法是更换 VSCode 插件。
- 禁用或卸载
Vetur:在 VSCode 的扩展面板中,找到 Vetur 并将其禁用或直接卸载。 - 安装
Volar:在 VSCode 扩展商店中搜索并安装Vue Language Features (Volar)。这是 Vue 官方团队推荐的新一代 Vue 工具插件,完美支持 Vue 3、TypeScript 和<script setup>语法。 - 重启 VSCode:完成上述操作后,重启 VSCode,错误提示应该就会消失。
注:如果你在使用 TypeScript,建议同时安装
TypeScript Vue Plugin插件,它可以更好地支持在.ts文件中导入.vue组件。
其他备选方案
如果上述方法不适用,你可以考虑以下选择:
临时配置 Vetur:如果暂时不想卸载 Vetur,可以在 VSCode 的设置中(
settings.json)添加以下配置来关闭 Vetur 的脚本验证:1
"vetur.validation.script": false
注意:这只是消除了错误提示,并未从根本上解决问题。
检查模块导出类型(针对JS/TS库):如果你在导入一个非 Vue 组件的 JavaScript/TypeScript 库时遇到类似错误(例如
"default" is not exported by ...),这表示该库可能没有使用export default语法。这时,你需要根据该库提供的导出方式,使用命名导入而非默认导入。默认导入(可能导致错误):
1
import myLib from 'my-library';
命名导入(可能为正确方式):
1
import { myFunction } from 'my-library';
具体应使用哪种方式,请查阅该库的官方文档。
总结
大多数情况下,”has no default export” 的提示通过 用 Volar 替换 Vetur 即可解决。这个方案也是 Vue 作者尤雨溪所推荐的。
希望这些方法能帮助你解决问题!如果尝试后仍有疑问,欢迎随时再问我。
- 本文链接:https://xuehuayu.cn/article/2f775138.html
- 版权声明:① 标为原创的文章为博主原创,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接。② 部分文章内容由 AI 生成,内容仅供参考,请仔细甄别。③ 标为转载的文章来自网络,已标明出处,侵删。

