如何清除react-native缓存?

时间:2017-10-22 20:06:40

标签: javascript java android reactjs react-native

在react-native开发中,构建应用程序时会使用多个缓存:

  1. React-native packager cache
  2. 仿真器缓存
  3. Java端缓存(.gradle)文件夹(仅限在android中)
  4. npm cache(如果相关?)
  5. 我也错过了什么吗?因为我正在尝试清除react-native中的缓存,以便能够重复仅在首次使用时发生的错误。但清除上述缓存并没有帮助。这是在Android上。当应用程序构建时,大多数行都没有像预期的那样说“UP-TO-DATE”,因为我清除了缓存。

    但是,仍有许多行打印此文本。像:

      

    app:preBuild UP-TO-DATE

         

    app:preDebugBuild UP-TO-DATE

         

    :app:preReleaseBuild UP-TO-DATE

    问题是,如何清除与react-native开发相关的整个缓存?

15 个答案:

答案 0 :(得分:20)

对于React Native Init方法(没有expo),请使用:

npm start -- --reset-cache

答案 1 :(得分:18)

最简单的一个(react native,npm和expo)

对于React Native

react-native start --reset-cache

对于npm

npm start -- --reset-cache

世博会

expo start -c

答案 2 :(得分:11)

清除React Native项目的缓存:

npm <6.0和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,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

答案 3 :(得分:8)

对于那些正在使用expo-cli的人

  

expo start -c

答案 4 :(得分:3)

如果您使用的是WebStorm,请按运行按钮左侧的配置选择下拉按钮,然后选择编辑配置:

edit configurations

双击Start React Native Bundler部分底部的Before launch

before launch

--reset-cache部分输入Arguments

arguments

答案 5 :(得分:3)

目前使用npx构建,需要更新。

终端:npx react-native start --reset-cache

IOS : Xcode -> Product -> Clean Build Folder

Android : Android Studio -> Build -> Clean Project

答案 6 :(得分:3)

以下命令适用于 Android 和 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

答案 7 :(得分:2)

在GitHub上的精彩讨论对我有很大帮助。 Clearing the Cache of your React Native ProjectJarret Moses

有4种不同实例的解决方案。

  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

解决方案类似于Vikram Biwal's Answer.

在下面的给定链接中进行了讨论,因此即使以上4种情况都不适合您,您也可以滚动浏览并找到可能的解决方案。

答案 8 :(得分:1)

这对我有用:

watchman watch-del-all && rm -f yarn.lock && rm -rf node_modules && yarn && yarn start --reset-cache

答案 9 :(得分:1)

尝试

react-native start --reset-cache

答案 10 :(得分:1)

清除React Native项目的缓存: 如果您确定模块存在,请尝试以下步骤:

  1. 清晰的守望者手表: npm watchman watch-del-all
  2. 删除node_modules: rm -rf node_modules并运行yarn install
  3. 重置Metro的缓存: 纱线开始-重置缓存
  4. 删除缓存:rm -rf / tmp / metro-*

答案 11 :(得分:0)

答案 12 :(得分:0)

您可以在React Native> = 0.50和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

除了清理npm缓存外,您可能还需要reset simulator or clean build等。

答案 13 :(得分:0)

我遇到了类似的问题,我试图清除所有可能的缓存(尝试了上面的几乎所有解决方案),而对我唯一有效的方法是杀死expo应用程序并重新启动它。

答案 14 :(得分:0)

我今天也谈到了这个问题。原因是很愚蠢的-vscode自动从express-validator导入了一些内容并引起了该错误。

只是提到这一点,以防万一有人完成了清除缓存/删除模块的所有步骤。