-
Couldn't load subscription status.
- Fork 3.7k
Description
问题描述
对于非static里的图片资源等,在打包后,全部被打包进主包而不是分包,导致主包体积过大。
尽管将静态资源文件放在static就不会有这个问题,但是static会被全部复制进小程序中,随着迭代可能会愈发臃肿且难以清理
复现步骤
- 小程序使用分包,在分包下建立assets文件夹并在代码中引用
- 打包
- 查看各分包下是否有assets文件夹
预期结果
在使用分包的时候,assets能被打包进各自的分包中,或者是否可以有一个选项选择是否全部被打包到主包中
实际结果
全部assets都被打包到主包下,分包中无assets文件夹
系统信息:
- 发行平台: 微信小程序
- uni-app版本 v3.0.0-alpha-3080220230511001
补充信息
在v3.0.0-alpha-3050020220623004版本中,是不存在这个问题的,打包出来的文件不hash并在各自的分包下,
在v3.0.0-alpha-3080220230511001版本中有此问题,应该是assets插件中的处理有差异
v3.0.0-alpha-3050020220623004版本中
uni-app/packages/uni-cli-shared/src/vite/plugins/vitejs/plugins/asset.ts
Lines 267 to 274 in 10af1df
| let fileName = file.startsWith(inputDir) | |
| ? path.posix.relative(inputDir, file) | |
| : assetFileNamesToFileName( | |
| path.posix.join(config.build.assetsDir, '[name].[hash][extname]'), | |
| file, | |
| contentHash, | |
| content | |
| ) |
v3.0.0-alpha-3080220230511001版本中
uni-app/packages/uni-cli-shared/src/vite/plugins/vitejs/plugins/asset.ts
Lines 302 to 306 in ef6db73
| let fileName = | |
| file.startsWith(inputDir) && file.includes('/static/') | |
| ? // 需要处理 HBuilderX 项目中的 node_modules 目录 | |
| normalizeNodeModules(path.posix.relative(inputDir, file)) | |
| : assetFileNamesToFileName(assetFileNames, file, contentHash, content) |