步骤:
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() 明显不对。
- 发布:2024-08-06 15:41
- 更新:2024-08-06 16:52
- 阅读:285
产品分类: uniapp/小程序/微信
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 4.24
第三方开发者工具版本号: 1.06.2405020
基础库版本号: 3.4.3
项目创建方式: HBuilderX
操作步骤:
预期结果:
正常输出test1
正常输出test1
实际结果:
TypeError: Cannot read property 'test' of undefined。
这个是BUG吗,还是我需要怎么处理下。求指点。
TypeError: Cannot read property 'test' of undefined。
这个是BUG吗,还是我需要怎么处理下。求指点。
bug描述:
uniapp vue3项目,js使用export default 导出整个对象,编译成小程序后,提示对象内的方法或属性找不到。
注意,仅小程序有问题,小程序,小程序
2***@qq.com (作者)
发包的时候,是不会动任何代码的。直接使用编译结果上传小程序。但是目前看来是编译到小程序的时候,这些静态js没有被编译到?没有变成exports.XXX=XXX的模式。
目前app和H5都没有问题,小程序就有问题。
2***@qq.com (作者)
-
2***@qq.com (作者)
回复 blackhole7878: 还真的是这样。我的妈呀,之前是vue2的工程,我们把静态js,css,图片全放在static下面的。感谢大佬指点
2024-08-06 17:16
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