【问题标题】:How to clear react-native cache?如何清除反应本机缓存?
【发布时间】:2018-04-03 08:51:02
【问题描述】:

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

  1. React-native 打包程序缓存
  2. 模拟器缓存
  3. Java 端缓存 (.gradle) 文件夹(仅在 android 中)
  4. npm 缓存(如果相关?)

我也错过了什么吗?因为我正在尝试清除 react-native 中的缓存,以便能够重复仅在第一次使用时出现的错误。但是清除上面的那些缓存并没有帮助。这是在安卓上。当应用程序正在构建时,大多数行没有按预期显示为 UP-TO-DATE,因为我清除了缓存。

但是,仍然有很多行打印了此文本。喜欢:

app:preBuild UP-TO-DATE

app:preDebugBuild UP-TO-DATE

:app:preReleaseBuild UP-TO-DATE

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

【问题讨论】:

    标签: javascript java android reactjs react-native


    【解决方案1】:

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

    npm start -- --reset-cache
    

    【讨论】:

    • 这帮助我修复了Error: unknown
    • 可以在不启动 Metro bundler 的情况下完成吗?
    • 为了更好的方法,在这个命令之前关闭 Metro bundler 并运行它。
    • -- 有什么作用?
    • @kojow7 '--' 将选项与参数分开。 --npm 之后的所有内容都不会作为选项读取,并将传递给启动脚本(大多数 unix/linux 命令遵循此选项/参数分隔约定)
    【解决方案2】:

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

    对于 React Native

    react-native start --reset-cache
    

    对于 npm

    npm start -- --reset-cache
    

    世博会

    expo start -c
    

    【讨论】:

    • 我得到“错误:未知选项`--reset-cache'”我该怎么办...?
    • @Leonard 试试yarn cache clean
    【解决方案3】:

    清除 React Native 项目的缓存:

    npm

     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
    

    【讨论】:

    • 这似乎是唯一可能的方法,一旦遇到从具有旧代码的缓存生成的错误。如果调试并在 RN 代码中使用了一些“console.log”,那真的很痛苦。任何人都有一些更短的解决方案,我的意思是避免 RN 框架使用缓存代码?
    • 一些注意事项。 1) 并不总是定义 $TMPDIR 变量。 2) watchman 命令并不总是被使用。您可以删除该部分命令或使用“;”而不是 '&&' 在它之后 3) 目录名称可能不同。我的是 /tmp/metro-cache/ ,而不是 metro-bundler-cache-something...(RN 0.62)
    • 我想说的最好的解决方案
    【解决方案4】:

    试试这个

    react-native start --reset-cache
    

    【讨论】:

      【解决方案5】:

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

      展会开始-c

      【讨论】:

        【解决方案6】:

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

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

        IOS : Xcode -> 产品 -> 清理构建文件夹

        Android : Android Studio -> 构建 -> 清理项目

        【讨论】:

          【解决方案7】:

          这对我有用:

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

          【讨论】:

          • 无需删除您的 yarn.lock 文件,您将在此过程中更新所有依赖项。
          【解决方案8】:

          这是 GitHub 上的一个很好的讨论,对我帮助很大。 Clearing the Cache of your React Native ProjectJarret Moses

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

          1. RN 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's Answer.

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

          【讨论】:

            【解决方案9】:

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

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

            输入--reset-cacheArguments 部分:

            【讨论】:

              【解决方案10】:

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

              【讨论】:

                【解决方案11】:

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

                1. 清除守望者手表: npm watchman watch-del-all
                2. 删除节点模块: rm -rf node_modules 并运行 yarn install
                3. 重置 Metro 的缓存: yarn start --reset-cache
                4. 删除缓存:rm -rf /tmp/metro-*

                【讨论】:

                • 如果我尝试rm -rf /tmp/metro-* 我得到zsh: no matches found: /tmp/metro-* 我使用的是RN 0.64.1。有什么想法吗?
                【解决方案12】:

                【讨论】:

                  【解决方案13】:

                  您可以在 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 等。

                  【讨论】:

                    【解决方案14】:

                    嗯..我想分享一下我对这个问题的经验:

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

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

                    【讨论】:

                      【解决方案15】:

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

                      【讨论】:

                        【解决方案16】:

                        我今天也谈到了这个问题。原因有点傻——vscode auto 从express-validator 导入了一些东西并导致了这个错误。

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

                        【讨论】:

                          【解决方案17】:

                          在 IOS/Xcode 中清除缓存

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

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

                          【讨论】:

                            猜你喜欢
                            • 1970-01-01
                            • 2021-09-30
                            • 1970-01-01
                            • 1970-01-01
                            • 2023-02-03
                            • 1970-01-01
                            • 2016-10-30
                            • 1970-01-01
                            • 2012-11-12
                            相关资源
                            最近更新 更多