Skip to content

fix(mp-vite): 仅被独立分包引用的 npm 打进分包 vendor - #6061

Open
bun-unsafe wants to merge 1 commit into
dcloudio:nextfrom
bun-unsafe:fix/mp-independent-subpkg-npm-vendor
Open

fix(mp-vite): 仅被独立分包引用的 npm 打进分包 vendor#6061
bun-unsafe wants to merge 1 commit into
dcloudio:nextfrom
bun-unsafe:fix/mp-independent-subpkg-npm-vendor

Conversation

@bun-unsafe

Copy link
Copy Markdown

Summary

  • 修复 引入 Lib 中的 class 无效 #6051:独立分包页 import { LibClass } from 'lib' 时,uni-mp-vite 仍把根目录 node_modules 打进主包 common/vendor.js。独立分包冷启动 require('../common/vendor.js') 会被微信拒绝(module 'common/vendor.js' is not defined),看起来像 eundefined / LibClass is not a constructor
  • 微信规定独立分包不能引用主包 JS。仅当某个 npm 只被一个独立分包引用时,改打到 {root}common/vendor.js。主包或普通分包也引用时,仍走主包 vendor(普通分包可以引用主包,这条本来就是好的)。
  • 不依赖 optimization.subPackages:现有分包优化只处理嵌套的 uni_modules/.../node_modules,且那是体积优化;独立分包是运行时正确性。

Test plan

  • packages/uni-mp-vite/__tests__/independentVendorChunk.spec.ts:只被独立分包引用 → {root}common/vendor;普通分包 / 与主包共享 / 两个独立分包共享 → 不搬。
  • 独立分包冷启动(编译模式直接进分包页,不要先开首页):产物应有 {root}common/vendor.js,页面 require 指向分包 vendor,new LibClass() 成功。
  • 普通分包、以及主包+独立分包同时引用同一个 npm:模块仍在主包 common/vendor.js

@bun-unsafe
bun-unsafe force-pushed the fix/mp-independent-subpkg-npm-vendor branch from 4762029 to 0488861 Compare September 3, 2026 19:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant