Skip to content

小程序assets全部被打包进主包而不是打包进各自的分包 #4338

@LiZhequ

Description

@LiZhequ

问题描述
对于非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版本中

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版本中
let fileName =
file.startsWith(inputDir) && file.includes('/static/')
? // 需要处理 HBuilderX 项目中的 node_modules 目录
normalizeNodeModules(path.posix.relative(inputDir, file))
: assetFileNamesToFileName(assetFileNames, file, contentHash, content)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions