161

In react-native development, there are multiple caches used when the app is built:

  1. React-native packager cache
  2. Emulator cache
  3. Java side cache (.gradle) folder (only in android)
  4. npm cache (if relevant?)

Am I missing something also? Because I'm trying to clear cache in react-native, to be able to repeat a bug that only occurs on first usage. But clearing those caches above did not help. This is on android. When the app is building, most of the rows DO NOT say UP-TO-DATE, as expected, because I cleared the cache.

But, there are still many rows where this text is printed. Like:

app:preBuild UP-TO-DATE

app:preDebugBuild UP-TO-DATE

:app:preReleaseBuild UP-TO-DATE

The question is, how can I clear the whole cache related to react-native development?

Community
  • 1
  • 1
Ville Miekk-oja
  • 18,749
  • 32
  • 70
  • 106

22 Answers22

172

For React Native Init approach (without expo) use:

npm start -- --reset-cache
Mohammad Usman
  • 37,952
  • 20
  • 92
  • 95
Haris Anwar
  • 1,992
  • 1
  • 7
  • 6
121

Simplest one(react native,npm and expo )

For React Native

react-native start --reset-cache

for npm

npm start -- --reset-cache

for Expo

expo start -c
Balaji
  • 9,657
  • 5
  • 47
  • 47
46

Clearing the Cache of your React Native Project:

npm < 6.0 and RN < 0.50:

 watchman watch-del-all && rm -rf $TMPDIR/react-* &&
 rm -rf node_modules/ && npm cache clean && npm install && 
 npm start -- --reset-cache

npm >= 6.0 and RN >= 0.50:

 watchman watch-del-all && rm -rf $TMPDIR/react-native-packager-cache-* &&
 rm -rf $TMPDIR/metro-bundler-cache-* && rm -rf node_modules/ && npm cache clean --force &&
 npm install && npm start -- --reset-cache
Vikram Biwal
  • 2,618
  • 1
  • 25
  • 36
  • 2
    This seems the only way possible once got stuck with errors generated from cache that has old code. Really a pain if debugging and used some "console.log" in the RN code. Anyone has some more shorter solution, I mean to avoid that the RN framework use cached code? – Carmine Tambascia Jul 30 '19 at 09:17
  • 1
    Some considerations. 1) not always $TMPDIR variable is defined. 2) watchman command isn't always used. You can remove that part of the command or use ';' instead of '&&' after it 3) the dir names might differ. Mine is /tmp/metro-cache/ , not metro-bundler-cache-something...(RN 0.62) – Elizandro - SparcBR Jul 26 '20 at 22:41
  • The best solution I would say – O. Borcuhin Oct 28 '21 at 10:04
33

Currently, it is built using npx, so it needs to be updated.

Terminal : npx react-native start --reset-cache

iOS : Xcode -> Product -> Clean Build Folder

Android : Android Studio -> Build -> Clean Project

shim
  • 9,289
  • 12
  • 69
  • 108
hong developer
  • 13,291
  • 4
  • 38
  • 68
29

try this

react-native start --reset-cache
spacedev
  • 1,086
  • 13
  • 13
22

For those who are using expo-cli

expo start -c

Mohsin
  • 1,586
  • 1
  • 22
  • 44
13

This is what works for me:

watchman watch-del-all && rm -f podfile.lock && rm -rf node_modules && yarn && yarn start --reset-cache
Firoz Ahmed
  • 1,929
  • 16
  • 18
12

Below commands worked for me for Android and Yarn,

cd android && ./gradlew cleanBuildCache && cd .. &&
watchman watch-del-all && rm -rf node_modules/ &&
rm -rf $TMPDIR/react-native-packager-cache-* &&
rm -rf $TMPDIR/metro-bundler-cache-* &&  
yarn cache clean && yarn install && 
yarn start --reset-cache
mmafrar
  • 281
  • 4
  • 9
7

Here's a great discussion on GitHub which helped me a lot. Clearing the Cache of your React Native Project by Jarret Moses

There are solutions for 4 different instances.

  1. RN <0.50 -
    watchman watch-del-all && rm -rf $TMPDIR/react-* && rm -rf node_modules/ && npm cache clean && npm install && npm start -- --reset-cache

  2. RN >=0.50 - watchman watch-del-all && rm -rf $TMPDIR/react-native-packager-cache-* && rm -rf $TMPDIR/metro-bundler-cache-* && rm -rf node_modules/ && npm cache clean && npm install && npm start -- --reset-cache

  3. NPM >=5 - watchman watch-del-all && rm -rf $TMPDIR/react-* && rm -rf node_modules/ && npm cache verify && npm install && npm start -- --reset-cache
  4. Windows - del %appdata%\Temp\react-native-* & cd android & gradlew clean & cd .. & del node_modules/ & npm cache clean --force & npm install & npm start -- --reset-cache

The solution is similar to Vikram Biwal's Answer.

And there is a discussion below in the given link, so even if the above 4 cases don't work for you, you can scroll through and find a possible solution.

Glitch_Znab
  • 496
  • 4
  • 13
6

Clearing the Cache of your React Native Project: if you are sure the module exists, try this steps:

  1. Clear watchman watches: npm watchman watch-del-all
  2. Delete node_modules: rm -rf node_modules and run yarn install
  3. Reset Metro's cache: yarn start --reset-cache
  4. Remove the cache: rm -rf /tmp/metro-*
5

If you are using WebStorm, press configuration selection drop down button left of the run button and select edit configurations:

edit configurations

Double click on Start React Native Bundler at bottom in Before launch section:

before launch

Enter --reset-cache to Arguments section:

arguments

Olcay Ertaş
  • 5,987
  • 8
  • 76
  • 112
3

You can clean cache in React Native >= 0.50 and npm > 5 :

watchman watch-del-all && 
rm -rf $TMPDIR/react-native-packager-cache-* &&
rm -rf $TMPDIR/metro-bundler-cache-* && 
rm -rf node_modules/ 
&& npm cache clean --force &&
npm install && 
npm start -- --reset-cache

Apart from cleaning npm cache you might need to reset simulator or clean build etc.

2

Have you tried gradle cleanBuildCache?

https://developer.android.com/studio/build/build-cache.html#clear_the_build_cache

sebastianf182
  • 9,844
  • 3
  • 34
  • 66
1

Well.. i want to share my experience about this issue:

I was facing this problem, and when I opened the task manager I notice many tasks being executed, and they were linked to my project folder.

So I restarted my PC, and when it turned on, I could install all I needed, so the problem got solved itself, it worked to me, hope this help somebody...

Code Drop
  • 79
  • 6
1

npm start -- --reset-cache

Clean build cache

cd android && ./gradlew cleanBuildCache

https://medium.com/@abhisheknalwaya/how-to-clear-react-native-cache-c435c258834e

Vaishnavi Maske
  • 421
  • 1
  • 3
  • 11
  • Please [edit] to make the relevant technical difference, or appreciated contibution in explanation, more obvious which this provides beyond the existing answers; because the core steps seem very similar to me. Note that linked content is not considered part of the answer post here. – Yunnosch Feb 03 '23 at 08:07
0

I had a similar problem, I tried to clear all the caches possible (tried almost all the solutions above) and the only thing that worked for me was to kill the expo app and to restart it.

Jack Wire
  • 681
  • 12
  • 25
0

I went into this issue today, too. The cause was kinda silly -- vscode auto imported something from express-validator and caused the bug.

Just mentioning this in case anyone has done all the steps to clear cache/ delete modules or what not.

Eddie Lam
  • 579
  • 1
  • 5
  • 22
0

For android and Npm

watchman watch-del-all && rm -rf node_modules/ &&
rm -rf $TMPDIR/react-native-packager-cache-* &&
rm -rf $TMPDIR/metro-bundler-cache-* &&  
npm cache clean && yarn install && 
npm start --reset-cache
Saif Mohmd
  • 251
  • 2
  • 5
0

React native

 npm start -r-cache

or

yarn cache clean

Expo

expo start -c
Rushikesh
  • 66
  • 4
0

Consider using the below code for a clean ios build:

cd ios && xcodebuild clean && cd .. && npm run ios
rcanpahali
  • 2,565
  • 2
  • 21
  • 37
Deepak Singh
  • 749
  • 4
  • 16
-1

Run in your terminal: expo prebuild --clean

Daniel Danielecki
  • 8,508
  • 6
  • 68
  • 94
-2

TO Clear cache in IOS/Xcode

Delete folders in /Users/{YOUR_USERNAME}/Library/Developer/Xcode/DerivedData/ and try again.

rm ~/Library/Developer/Xcode/DerivedData/* 
Shiva
  • 11,485
  • 2
  • 67
  • 84