uni-app 小程序assets全部被打包进主包而不是打包进各自的分包

u5rb5r59  于 4个月前  发布在  uni-app
关注(0)|答案(1)|浏览(61)

问题描述
对于非static里的图片资源等,在打包后,全部被打包进主包而不是分包,导致主包体积过大。
尽管将静态资源文件放在static就不会有这个问题,但是static会被全部复制进小程序中,随着迭代可能会愈发臃肿且难以清理

复现步骤

  1. 小程序使用分包,在分包下建立assets文件夹并在代码中引用
  2. 打包
  3. 查看各分包下是否有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) |

wqsoz72f

wqsoz72f1#

我也是这个问题,请问解决了吗

相关问题