RN:metro缓存以及如何清除缓存
缓存 如何 以及 清除 Rn
2023-09-27 14:27:09 时间
背景
我们在执行 yarn start/build
的时候会实时检测打包更新,有了缓存之后可以对一些没有变换的文件不进行更新,大大节省了打包速度。
缓存类型
metro 的缓存实现在 node_modules/metro-cache
中,主要有两种缓存机制:
- 服务端缓存:HttpStore
- 本地缓存:FileStore
服务端主要是通过服务器来缓存相关内容,优势是不用担心缓存的大小和时间限制,可以灵活的设置缓存策略,不过这个我们目前没有使用到,后期可以考虑。
metro 默认的缓存机制是 FileStore,这也是我们目前使用的缓存机制,FileStore 实际上就是将编译转换后的文件缓存起来,以便下一次编译的时候能够避免重复转换,加快编译速度。
FileStore缓存
缓存地址为:echo $TMPDIR
拼接上 /metro-cache
缓存导致的问题
执行 yarn start
yarn ios
可能会有缓存问题
- 团队有人修改了依赖库,有的人就会报错
yarn ios
打包报错找不到 metro-cahce/T/xx 文件
清除缓存
1、重启电脑
2、删除文件夹: echo $TMPDIR
拼接上 /metro-cache
3、react-native start --reset-cache
4、ignite 脚手架提供清缓存命令,具体可以看这个包 https://github.com/subratamal/react-native-clean-project
参考资料
https://github.com/facebook/metro
https://www.jianshu.com/p/52620bc4b728
相关文章
- Nginx 浏览器缓存
- 读懂操作系统之缓存原理(cache)(三)
- Redis总结(五)缓存雪崩和缓存穿透等问题 Web API系列(三)统一异常处理 C#总结(一)AutoResetEvent的使用介绍(用AutoResetEvent实现同步) C#总结(二)事件Event 介绍总结 C#总结(三)DataGridView增加全选列 Web API系列(二)接口安全和参数校验 RabbitMQ学习系列(六): RabbitMQ 高可用集群
- 一文看懂推荐系统:召回09:地理位置召回、作者召回、缓存召回
- 动态规划4种模型:暴力递归的尝试原则,如何到傻缓存dp表跟随(记忆化搜索方法),到精细化改动态规划转移方程填dp表
- 如何在 Linux/Unix/Mac 下清除 DNS 查询缓存
- 如何在 nginx 中缓存静态文件
- spring-boot 整合redis作为数据缓存
- 什么是缓存击穿、缓存穿透、缓存雪崩?如何解决?
- yii2 刷新缓存(刷新模型缓存)
- Mybatis的一级缓存和二级缓存详解
- 使用memoizee缓存函数提升性能,竟引发了indexOf的性能问题
- PHP WEB 引擎缓存加速优化
- 转 如何快速清理 chrom 缓存
- 分布式缓存服务器设计原理
- 浅析如何保证缓存与数据库的双写一致性:4种更新缓存的设计模式理解
- 浅析浏览器是如何工作的(三):机器码和字节码、隐藏类和内联缓存、异步编程与消息队列、垃圾回收机制原理、利用V8原理优化
- 浅析如何优化Webpack构建速度:使用可量化工具、配置include、配置缓存、配置多进程多实例thread-loader/parallel、硬件加速、noParse、IgnorePlugin、抽取公共代码、DllPlugin分包、开启webpack内置优化、babel配置优化、可视化分析针对性优化
- Android Studio 如何设置logcat(控制台)的缓存大小,增加logcat控制台条数
- [LeetCode] LFU Cache 最近最不常用页面置换缓存器
- 使用PostgreSQL_Notify实现多实例缓存同步
- 如何清除远程桌面访问痕迹,删除远程桌面缓存记