我阅读了有关编译器的指南。他们有许多优化技术,如删除冗余代码或删除未使用的变量,没有使用过的方法 但像js这样的脚本语言没有编译器,因此不需要进行优化 我读了一篇关于js优化器的文章,如:
- Google Closure Compiler https://github.com/google/closure-compiler
- UglifyJS https://github.com/mishoo/UglifyJS
真正的问题是反应原生,角度,使用代码优化等平台,还是我自己应该使用?
答案 0 :(得分:5)
React Native脚本捆绑器Metro首先使用Babel转换代码。在生产构建模式下,它会通过UglifyJS运行您的代码。
默认配置不会执行任何高级优化,例如树抖动或重复数据删除。
如果要应用更高级的优化,可以尝试查看是否可以在使用Babel插件的转换步骤中实现这些优化。如果没有,最简单的方法是使用Haul,这是一个基于webpack的React Native的替代捆绑包。
但是,与往常一样,在过早优化之前,请考虑一下您尝试改进哪些指标,并衡量优化是否真正实现了目标。
答案 1 :(得分:0)
Facebook去年发布了Hermes。 Hermes是一个开源JavaScript引擎,经过优化,可在Android上运行React Native应用。对于许多应用程序而言,启用Hermes可以缩短启动时间,减少内存使用量并减小应用程序大小。目前,Hermes是一个可选的React Native功能,本指南介绍了如何启用它。
实际上,利用此引擎,我的应用程序从3300万缩小到21M。