React-Native清除缓存汇总
不是我们开发效率低,而是我们使用的工具误导了我们,误以为本来就这样。
一、问题背景
在平时开发中,我们修改了部分模块的路径或名称时,细小的改动总需要重新启动react-native
本地服务器,通常如果你直接使用npm start
启动的话,就会存在本地服务bundle.js使用缓存的情况,总是无法在模拟器或者真机上重新获取到最新的修改后的代码,在我知道有了npm start -- --reset-cache
命令之后,我就是用该命令进行启动,但是我却是在错误的使用,我错误的用法是npm start --reset-cache
,错误的用法不会起到刷新缓存的作用。
好在经过我的反复询问,改用下面这个成功刷新缓存,特此记录
npm start -- --reset-cache
二、缓存清理延伸
如果单纯重启还是不行,可以打出下面一套组合拳,是把相关的缓存都清了一趟,如果还有问题,要思考可能问题并不是缓存的锅,可能得考虑是不是代码确实存在问题
watchman watch-del-all
rm -rf $TMPDIR/react-native-packager-cache-*
rm -rf $TMPDIR/metro-bundler-cache-*
npm cache clean --force
npm i
npm start -- --reset-cache
- Watchman 是由 Facebook 提供的监视文件系统变更的工具。请自行查阅安装步骤。
- MacOS 可以 brew install watchman 下载
- $TMPDIR 介绍传送门,简单说这是一个暂存空间,里面有时会有 RN 的一些缓存文件
有些情况下,如果项目中在使用了flow类型检查,可能在提交代码的时候检查有问题,可以清除掉flow检查的一些缓存
rm -rf /tmp/flow/