彻底改变您的工作流程:将 React Native 构建时间减少 67%!

281 阅读4分钟

构建您的 React Native 应用程序可能很昂贵,并且需要花费开发人员几分钟的时间。随着项目的增长,并且通常在拥有多个 React Native 开发人员的大型组织中,这可能会出现问题。但是,如果我告诉您有一种方法可以显着减少构建时间呢?

想象一下: 您当前的构建时间高达2 分 4 秒。

现在,想象一下将时间缩短到仅仅41 秒。

(这些是在 M2 Mac 上拍摄的,但时间的减少在所有设备上应该是相似的)

是的,你没有看错。从两分钟多到不到一分钟。构建时间减少了 67%,让您在开发周期中节省了宝贵的时间。

但你问这怎么可能?实现这些令人印象深刻的时间节省的秘诀是什么?

输入ccache

ccache是一个编译器缓存。它通过缓存以前的编译并检测何时再次进行相同的编译来加速 C/C++ 代码的重新编译。这可以显着减少重新编译代码所需的时间,尤其是在大型项目中。

第一步:安装ccache

首先,您需要安装ccache. 如果您使用的是 macOS,则可以通过在终端中运行以下命令来执行此操作:

brew install ccache

第 2 步:将 Ccache 添加到您的路径

安装后ccache,您需要将其添加到您的路径中。您可以通过将以下行添加到您的 shell 配置文件(如.bashrc.bash_profile.zshrc)来执行此操作:

export PATH= "/opt/homebrew/opt/ccache/libexec: $PATH "

然后,获取您的配置文件或打开一个新的终端会话以应用更改。

第三步:配置缓存

接下来,您需要ccache为各种编译器创建符号链接。你可能需要sudo这个。在您的终端中运行以下命令:

sudo ln -s $(which ccache) /usr/local/bin/gccln -s $(which ccache) /usr/local/bin/gcc  
sudo ln -s $(which ccache) /usr/local/bin/g++  
sudo ln -s $(which ccache) /usr/local/bin/cc  
sudo ln -s $(which ccache) /usr/local/bin/c++  
sudo ln -s $(which ccache) /usr/local/bin/clang  
sudo ln -s $(which ccache) /usr/local/bin/clang++

第 4 步:验证配置

您可以通过检查将使用ccache哪个版本来验证设置是否正确。gcc在您的终端中运行以下命令:

which gcc

如果输出是/usr/local/bin/gcc,那么您实际上是在调用ccache,这将gcc包装调用。

第 5 步:测试设置

最后,要测试设置,请删除您的android/build文件夹并再次运行编译命令。您应该注意到构建时间显着减少。

实用脚本

缓存清理

如果需要清除缓存,可以使用以下命令:

ccache --clear--clear

缓存统计

您可以使用以下命令检查缓存命中率/未命中率:

ccache -s

此命令聚合所有构建的统计信息。您可以在构建之前重置它们以验证缓存命中率ccache --zero-stats

什么可能出错以及如何解决

请注意,此设置ccache将影响您在计算机上运行的所有编译,而不仅仅是那些与 React Native 相关的编译。如果您未能安装/编译其他软件,这可能是原因。如果是这种情况,您可以删除使用以下命令创建的符号链接:

sudo unlink /usr/local/bin/gccunlink /usr/local/bin/gcc  
sudo unlink /usr/local/bin/g++  
sudo unlink /usr/local/bin/cc  
sudo unlink /usr/local/bin/c++  
sudo unlink /usr/local/bin/clang  
sudo unlink /usr/local/bin/clang++

这会将您的机器恢复到原始状态并使用默认编译器。

你有它!在您的工具包中ccache,您现在已准备好大幅缩短 React Native 构建时间。但这对您和您的团队意味着什么?

就像来自硅谷的 Dinesh 和 Gilfoyle,他们将他们的团队称为“种马”,一个比一个壮丽,现在你也可以用同样的眼光看待你的团队。

节省下来的时间让您的团队可以专注于真正重要的事情——构建令人惊叹的功能、消除错误并交付出色的产品。您不仅仅是开发人员。你是一队种马,准备在比赛中驰骋,让你的竞争对手望尘莫及。

关注公众号:Android老皮
解锁  《Android十大板块文档》 ,让学习更贴近未来实战。已形成PDF版

内容如下

1.Android车载应用开发系统学习指南(附项目实战)
2.Android Framework学习指南,助力成为系统级开发高手
3.2023最新Android中高级面试题汇总+解析,告别零offer
4.企业级Android音视频开发学习路线+项目实战(附源码)
5.Android Jetpack从入门到精通,构建高质量UI界面
6.Flutter技术解析与实战,跨平台首要之选
7.Kotlin从入门到实战,全方面提升架构基础
8.高级Android插件化与组件化(含实战教程和源码)
9.Android 性能优化实战+360°全方面性能调优
10.Android零基础入门到精通,高手进阶之路

敲代码不易,关注一下吧。ღ( ´・ᴗ・` ) 🤔