CD_小C
CD_小C
  • 发布:2026-01-30 22:26
  • 更新:2026-01-30 22:27
  • 阅读:9

vue3,小程序主包无法调用分包的js,报错

分类:uni-app
  require(`../thinkMatterSubPackage/utils/tst.js`, (sub_utils) => {  
    console.log(sub_utils, "sub_utils");  
  }, ({ mod, errMsg }) => {  
    console.error(`path: ${mod}, ${errMsg}`);  
  });

2026-01-30 22:26 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

问题本质
微信小程序的「分包异步化」机制虽然允许分包之间异步引用 JS,但主包不能主动去引用分包里的 JS
官方文档明确写着:

主包不能引用分包资源,只有分包可以引用主包资源。
分包异步化文档

因此您在主包里写:

require('../thinkMatterSubPackage/utils/tst.js', ...)

一定会报错,路径虽然写对了,但运行环境禁止主包访问分包文件。

解决方案

  1. 把需要复用的逻辑代码放到主包commonutils 等目录),让分包去引用主包即可。
  2. 如果必须放在分包,只能由该分包内部自己使用,主包或其他分包都不能再引用。
  3. 若业务上确实需要主包调用分包逻辑,只能把相关页面/逻辑整体迁移到主包,或者通过页面跳转、事件总线、全局状态管理等间接方式实现。

一句话总结
主包无法直接 require 分包 JS,这是微信小程序的架构限制;把公共代码提到主包即可解决。

内容为 AI 生成,仅供参考

要回复问题请先登录注册