uni-app 为什么会将新建的分包文件打包到主包的vendor.js文件里。新建分包没有任何代码,路径也正常,manifest.json配置也都正确。

发布于 1周前 作者 vueper 来自 Uni-App

uni-app 为什么会将新建的分包文件打包到主包的vendor.js文件里。新建分包没有任何代码,路径也正常,manifest.json配置也都正确。

HBuilderd运行uniapp小程序分包问题

HBuilderd运行uniapp小程序时,新建的分包Vue文件没有任何代码。Vue文件会以JS文件的形式出现在主包的vendor.js文件里面。

mainifest.json配置如下:

"optimization" : {
  "subPackages" : true
}

为什么分包的文件会被打包到主包的vendor.js文件里面?而且还是新建的分包,没有任何代码。新建的分包路径也正常,mainifest.json该配置都配置了。

项目创建方式 配置文件
新建分包 mainifest.json

3 回复

分包通常需要先配置subPackages,再在 pages.json 中,配置 subpackage,指定 root 和配置 path,如果你那里依然不能够成功,请提供一下一个可以复现的项目。


vendor.js 这个破文件为啥嫩大!!!!! 能不能优化一下,或者分开

在uni-app中,遇到分包文件被错误地打包到主包的vendor.js文件中的情况,通常是由于配置或代码结构上的问题导致的。尽管你提到新建的分包没有任何代码且路径、manifest.json配置均正确,但仍需检查以下几个方面以确保分包配置正确无误。以下是一些可能的原因及相应的代码示例和检查方法:

1. 检查manifest.json中的分包配置

确保manifest.json中的分包配置正确无误。以下是一个基本的分包配置示例:

{
  "mp-weixin": { // 微信小程序平台配置
    "optimization": {
      "splitPages": true, // 开启分包优化
      "subPackages": [
        {
          "root": "subpkg1/", // 分包的根目录
          "pages": [
            "pages/sub1/sub1" // 分包内的页面路径
          ]
        },
        {
          "root": "subpkg2/",
          "pages": [
            "pages/sub2/sub2"
          ]
        }
      ]
    }
  }
}

2. 确保分包目录结构正确

分包目录应与manifest.json中配置的root路径一致。例如,如果你的配置中rootsubpkg1/,则分包页面应位于项目的subpkg1/pages/sub1/sub1.vue

3. 检查是否有引用关系导致打包错误

即使分包目录为空,也要检查主包中是否有代码直接或间接引用了分包路径。例如,在主包的某个组件或JavaScript文件中,不应存在对分包路径的引用,如importrequire语句。

4. 清理项目并重新构建

有时候,构建缓存可能会导致打包问题。尝试清理项目并重新构建:

# 清理项目
npm run clean

# 重新构建
npm run dev:%PLATFORM%  # 替换%PLATFORM%为具体平台,如mp-weixin

5. 检查webpack配置(如有自定义)

如果你自定义了webpack配置,确保没有配置错误导致分包被错误地打包到主包中。检查vue.config.js或相关配置文件中的链式调用或规则配置。

结论

如果以上步骤均确认无误,但问题依旧存在,建议查看uni-app的官方文档或社区论坛,看是否有其他开发者遇到并解决了类似问题。此外,也可以考虑提交issue到uni-app的GitHub仓库,寻求官方支持。在实际项目中,确保所有配置和代码结构严格遵循官方文档的指导是避免此类问题的关键。

回到顶部