00后霸道总裁
00后霸道总裁
  • 发布:2024-05-07 11:07
  • 更新:2024-05-07 15:40
  • 阅读:448

【报Bug】vite5 项目运行报错

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 最新

HBuilderX类型: 正式

HBuilderX版本号: 4.14

浏览器平台: Chrome

浏览器版本: 最新

项目创建方式: HBuilderX

操作步骤:

up

预期结果:

up

实际结果:

up

bug描述:

10:58:27.250 vite v5.2.8 dev server running at:
10:58:27.250 - Local: http://localhost:5173/
10:58:27.254 - Network: http://192.168.199.111:5173/
10:58:27.255 项目 yyjh5 编译成功。前端运行日志,请另行在浏览器的控制台查看。
10:58:27.255 点击控制台右上角debug图标(虫子),可开启断点调试(添加断点:双击编辑器行号添加断点)
10:58:27.255 Web版常见问题参考: https://ask.dcloud.net.cn/article/35232
10:58:27.255 ready in 1151ms.
10:58:29.415 [vite] connecting...
10:58:29.437 [vite] connected.

index.js:18 Uncaught TypeError: (intermediate value).globEager is not a function
at index.js:18:34
(anonymous) @ index.js:18

// #ifdef VUE3
const modulesFiles = import.meta.globEager('./modules/.js');
for (const modulePath in modulesFiles) {
const moduleName = modulePath.replace(/^.\/modules\/(.
).\w+$/, '$1')
modules[moduleName] = modulesFiles[modulePath].default;
}
// #endif

查询了下:
vite5中import.meta.globEager已经被废弃,改成使用import.meta.glob('*', { eager: true })

怎么解决?

2024-05-07 11:07 负责人:无 分享
已邀请:

最佳回复

DCloud_UNI_OttoJi

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信

感谢反馈,最近的升级,vue3 的底层 vite 升级到了 v5 版本,在这个版本中官方废弃使用 globEager

https://cn.vitejs.dev/guide/migration.html#removed-deprecated-apis

import.meta.globEager:使用 import.meta.glob('*', { eager: true }) 来代替

改成下面的书写方式是否可以解决你的问题,如果仍有问题请和我反馈

  • 00后霸道总裁 (作者)

    我使用demo项目,运行就报错,这个代码import.meta.globEager是uniapp自动生成的,没有修改的地方;可能需要官方来修改,或者降低hbx内置的vite版本了。。。。

    2024-05-07 15:05

  • DCloud_UNI_OttoJi

    回复 00后霸道总裁: 我使用 hbuilder 4.14 运行 vue2/vue3 未能复现这个问题,是使用那个 demo 呢,请再多解释一下,提供更多信息有助于定位和修复问题

    2024-05-07 15:11

  • 00后霸道总裁 (作者)

    回复 DCloud_UNI_OttoJi: 下面放了个demo

    2024-05-07 15:40

00后霸道总裁

00后霸道总裁 (作者) - 00后霸道总裁

错误项目示例 代码;

使用https://ext.dcloud.net.cn/plugin?name=vk-cloud-router ,导入hbx,运行web,console会有报错

  • DCloud_UNI_OttoJi

    我下载项目,修改 index.js 中的 // const modulesFiles = import.meta.globEager('./modules/**/*.js'); const modulesFiles = import.meta.glob('./modules/**/*.js', { eager: true }) 就可以了,你是指这个项目作者没有适配需要通知他适配是吗?

    2024-05-07 15:53

  • DCloud_UNI_OttoJi

    已经通知作者进行适配更新,在项目没有更新之前,你可以沿用你本地的项目进行修改

    2024-05-07 15:56

  • 00后霸道总裁 (作者)

    回复 DCloud_UNI_OttoJi: 找到代码了,感谢感谢

    2024-05-07 16:03

  • DCloud_UNI_OttoJi

    回复 00后霸道总裁: :)

    2024-05-07 16:16

要回复问题请先登录注册