Web平台怎么剔除wasm模块

版本:3.8.0
看了文档,支持Web 平台剔除 asm.js 模块,但并不行剔除wasm模块。
对于做playable素材的,wasm不能支持所有平台版本,但又要占据包体大小,而且素材不支持服务方式启动,只能本地html文件双击启动,从性能与包体上来说,我们还是更倾向于去掉wasm模块。
请问要怎么去呢?

image

3.8 的构建任务可以选择这个

是剔除wasm, 留下asm。不是剔除asm。

本身不影响的,用不到就不会加载,不影响运行时,只是包体大了

请问 解决了吗

3.8.3 web-mobile 并无这个选项,看配置默认设置 “wasmCompressionMode”: false。

然而打出的包里有wasm模块并且会下载,如果不希望被下载该如何设置 @2105873459

看源码有个变量CULL_MESHOPT 是做剔除工作的,但是不知道在哪里设置

3.8.3 有这个选项,你选择 ASMJS,那么 wasm 就会被剔除。

我是在web-mobile上想剔除 wasm。而且asmjs也不用。
web项目只用到模块极少想尽量剔除不需要的模块
F~MNA7)RXETO{QS}JS

是不是 wasm和asmjs必须二选一?

模块都没了,自然就不会有 wasm 或者 asmjs 的输出了。
比如,你在项目设置中没有勾选 spine,那么构建的产物中就不会有 spine 的 wasm 和 asmjs 相关的文件。

我可以理解为每个模块都有对应的wasm文件吗?或者说 basic 2d 也有对应的wasm文件
我目前的困惑是,只用到最基本的2d绘图,但是导出文件中可以看到有wasm文件。


我想用不到mesh,就是手动删掉build的wasm文件,除了启动时报错其他不受任何影响

于是想看看能不能找到方法把它在编译的时候去掉

不是每个模块都有 wasm 的。
meshopt 是只有在 3D 模块或者其子模块有被勾选的情况下会有。
其它的 wasm/asmjs 模块有:

  • spine
  • box2d-wasm
  • bullet
  • physx
  • webgpu


O0}JU35NCM)FU@1TO~W~4RQ

所有功能都剔除了,依然有,虽然不大,但是会串行加载,弱网环境下是一个优化点

你这个是哪个版本?我记得之前有一个bug,会导致 meshopt 被输出。你可以勾选一下 3D,然后再取消勾选,再构建看看。

1赞

3.8.3,好的,谢谢

果然如此 :rofl: