如何清除反应本机缓存?

在本地反应开发中,在构建应用程序时使用了多个缓存:

  1. 反应-本机包装器缓存
  2. 模拟器缓存
  3. Java 端缓存(. gradle)文件夹(仅在 android 中)
  4. Npm 缓存(如果相关?)

我是不是也错过了什么?因为我正在尝试清除本地反应缓存,以便能够重复只在第一次使用时发生的错误。但是清理上面的缓存并没有帮助。这是在机器人上。当应用程序正在构建时,大多数行不会像预期的那样说 up-TO-DATE,因为我清除了缓存。

但是,还是有很多行打印了这篇文章,比如:

App: preBuild Up-TO-Date

App: preDebugBuild Up-TO-DATE

: app: preReleaseBuild Up-TO-DATE

问题是,如何清除与响应本机开发相关的整个缓存?

424893 次浏览

清除 React 本机项目的缓存:

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

对于 React Natit 方法(没有 expo)的使用:

npm start -- --reset-cache

您可以在 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 缓存,您可能需要 复位模拟器或清洁生产等。

给那些使用 expo-cli 的人

世博会开始 c

这就是对我有效的方法:

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

试试这个

react-native start --reset-cache

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

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

edit configurations

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

before launch

输入 --reset-cacheArguments部分:

arguments

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

  1. 值班警卫: Npm 看门人 Watch-del-all
  2. 删除 node _ module: Rm-rf node _ module 并运行纱线安装
  3. 重置 Metro 的缓存: 纱线起动——复位缓存
  4. 删除缓存: rm-rf/tmp/Metro-*

在 GitHub 上有一个很棒的讨论,对我很有帮助。 清除反应本地项目的缓存

有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. 视窗- 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 的回答。

在给定的链接下面有一个讨论,所以即使上述4种情况不适合你,你也可以滚动浏览并找到一个可能的解决方案。

最简单的一个(本地反应,npm 和 expo)

本地反应

react-native start --reset-cache

为了 NPM

npm start -- --reset-cache

世博会

expo start -c

我今天也讨论过这个问题。原因是有点傻—— vscode自动导入的东西从 express-validator和造成的错误。

如果有人已经完成了清除缓存/删除模块的所有步骤或其他步骤,请提到这一点。

目前,它是使用 npx构建的,因此需要对其进行更新。

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

IOS : Xcode -> Product -> Clean Build Folder

Android : Android Studio -> Build -> Clean Project

下面的命令适用于 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

我想分享一下我在这个问题上的经验:

我正面临着这个问题,当我打开任务管理器时,我注意到许多任务正在执行,它们被链接到我的项目文件夹。

所以我重新启动了我的电脑,当它打开的时候,我可以安装所有我需要的东西,所以问题自己解决了,它对我起作用了,希望这能帮到某人..。

清除 IOS/Xcode 中的缓存

删除文件夹 /Users/{YOUR_USERNAME}/Library/Developer/Xcode/DerivedData/ 再试一次。

rm ~/Library/Developer/Xcode/DerivedData/*

在你的终端运行: expo prebuild --clean

对于机器人和 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

本地反应

 npm start -r-cache

or

yarn cache clean

博览会

expo start -c