问题描述
对于非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
| | letfileName=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
| | letfileName= |
| | file.startsWith(inputDir)&&file.includes('/static/') |
| | ? // 需要处理 HBuilderX 项目中的 node_modules 目录 |
| | normalizeNodeModules(path.posix.relative(inputDir,file)) |
| | : assetFileNamesToFileName(assetFileNames,file,contentHash,content) |
1条答案
按热度按时间wqsoz72f1#
我也是这个问题,请问解决了吗