2***@qq.com
2***@qq.com
  • 发布:2024-08-06 15:41
  • 更新:2024-08-06 16:52
  • 阅读:285

【报Bug】uniapp+vite+vue3 工具方法或混入js使用export default导出,在小程序中报错无法使用

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 4.24

第三方开发者工具版本号: 1.06.2405020

基础库版本号: 3.4.3

项目创建方式: HBuilderX

操作步骤:

步骤:
1.使用hbuilder新建一个vue3的默认模版
2.在static下面新建js文件夹,新建test.js,使用export default 方式导出。如下
const orgUtils={
test:()=>{
console.log("test1");
},
test2:()=>{
console.log("test2");
}
};
export default orgUtils;
3.在pages/index/index页面中,引入该js并使用。
onLoad() {
setTimeout(()=>{
orgUtils.test();
},1000);
},
4.使用hbuilder直接发行小程序
结果:报错
TypeError: Cannot read property 'test' of undefined
查看编译后的文件,可知index/index.js引入该文件是
const t=require("../../static/js/test.js")
但是在报错的地方看到的是 t.orgUtils.test() 明显不对。

预期结果:

正常输出test1

实际结果:

TypeError: Cannot read property 'test' of undefined。

这个是BUG吗,还是我需要怎么处理下。求指点。

bug描述:

uniapp vue3项目,js使用export default 导出整个对象,编译成小程序后,提示对象内的方法或属性找不到。
注意,仅小程序有问题,小程序,小程序

2024-08-06 15:41 负责人:无 分享
已邀请:
blackhole7878

blackhole7878

没问题啊,有啥问题。

  • 2***@qq.com (作者)

    你保持现有情况,然后把dist文件夹删除。然后再重新编译运行到小程序开发工具。是有问题的。因为边敲代码边编译的情况,差量编译的时候把test.js给编译了,变成了export.XX=XX的模式。实际直接运行打开小程序的时候,js仍然还是export default 的模式

    2024-08-06 16:26

  • blackhole7878

    回复 2***@qq.com: 照你说的试过了,没有问题,不会报错。

    2024-08-06 16:31

  • 2***@qq.com (作者)

    回复 blackhole7878: 我这边是100%的回显概率,只要关了小程序工程,然后去把项目的dist全删掉。重新运行铁定出问题。55555……我这hbuilder是最新的 2405020,应该跟这没关系吧。

    2024-08-06 16:36

  • blackhole7878

    回复 2***@qq.com: 我的是4.23.2024070309-alpha版本。代码肯定是没问题的,你下个alpha版本试下呗。

    2024-08-06 16:44

2***@qq.com

2***@qq.com (作者)

发包的时候,是不会动任何代码的。直接使用编译结果上传小程序。但是目前看来是编译到小程序的时候,这些静态js没有被编译到?没有变成exports.XXX=XXX的模式。
目前app和H5都没有问题,小程序就有问题。

DCloud_UNI_yuhe

DCloud_UNI_yuhe

你们试一下真机,这可能是模拟器的bug,我测试的真机是正常的

  • 2***@qq.com (作者)

    是小程序哦,我小程序真机调试也是报错呢。

    2024-08-06 16:56

  • 2***@qq.com (作者)

    找了公司另一开发人员的hbuilder编译到小程序也有该问题。

    2024-08-06 16:57

2***@qq.com
  • 2***@qq.com (作者)

    这个是有问题的demo

    2024-08-06 16:53

  • blackhole7878

    回复 2***@qq.com: 你把js文件放到static里首次编译确实有问题,差量编译后就没问题了。

    2024-08-06 17:01

  • blackhole7878

    回复 2***@qq.com: 你为什么要把js文件放到static里?这里一般放静态图片之类的。换其他目录里吧

    2024-08-06 17:04

  • 2***@qq.com (作者)

    回复 blackhole7878: 还真的是这样。我的妈呀,之前是vue2的工程,我们把静态js,css,图片全放在static下面的。感谢大佬指点

    2024-08-06 17:16

要回复问题请先登录注册