Как очистить кеш-реактив?

В естественной разработке при сборке приложения используется несколько кэшей:

  1. Реактивный кеш упаковщика
  2. Эмулятор кеша
  3. Папка кэширования на стороне Java (.gradle) (только в Android)
  4. кэш npm (если актуально?)

Я тоже что-то упустил? Потому что я пытаюсь очистить кеш в реагировать на нативный, чтобы иметь возможность повторить ошибку, которая возникает только при первом использовании. Но очистка этих кешей выше не помогла. Это на андроиде. Когда приложение строится, большинство строк НЕ УКАЗЫВАЮТ ОБНОВЛЕНИЕ, как ожидалось, потому что я очистил кеш.

Но есть еще много строк, где этот текст печатается. Подобно:

приложение: preBuild UP-TO-DATE

приложение: preDebugBuild UP-TO-DATE

: app: preReleaseBuild UP-TO-DATE

Вопрос в том, как я могу очистить весь кеш, связанный с реактивной разработкой?

24 ответа

Для подхода React Native Init (без выставки) используйте:

npm start -- --reset-cache

Самый простой (реагировать на родной,npm и expo)

Для React Native

react-native start --reset-cache

для npm

npm start -- --reset-cache

для Экспо

expo start -c

Очистка кеша вашего собственного проекта React:

RN <0,50:

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

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

В настоящее время он построен с использованием npx, поэтому его нужно обновить.

Терминал : npx react-native start --reset-cache

IOS: Xcode -> Продукт -> Папка чистой сборки

Android: Android Studio -> Сборка -> Чистый проект

Попробуй это

react-native start --reset-cache

Для тех, кто использует экспо-кли

начало выставки -c

Вот что у меня работает:

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

Ниже команды работали для меня для 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

Вот отличное обсуждение на GitHub, которое мне очень помогло. Очистка кеша вашего проекта React Native от Джаррета Мозеса

Есть решения для 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

Решение похоже на ответ Викрама Бивала.

И ниже по данной ссылке есть обсуждение, поэтому, даже если вышеуказанные 4 случая не работают для вас, вы можете пролистать и найти возможное решение.

Очистка кеша вашего проекта React Native: если вы уверены, что модуль существует, попробуйте следующие шаги:

  1. Четкие часы сторожа: npm watchman watch-del-all
  2. Удалите node_modules: rm -rf node_modules и запустите yarn install
  3. Сброс кеша Metro: yarn start --reset-cache
  4. Удалите кеш: rm -rf /tmp/metro-*

Если вы используете WebStorm, нажмите раскрывающуюся кнопку выбора конфигурации слева от кнопки запуска и выберите редактировать конфигурации:

Дважды щелкните на Start React Native Bundler внизу в Before launch раздел:

Войти --reset-cache к Arguments раздел:

Вы можете очистить кеш в 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 вам может понадобиться сбросить симулятор или очистить сборку и т. Д.

Реагировать нативным

       npm start -r-cache

или

      yarn cache clean

Экспо

      expo start -c

Вы пробовали gradle cleanBuildCache?

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

запуск npm -- --reset-cache

Очистить кеш сборки

cd android && ./gradlew cleanBuildCache

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

Что ж .. я хочу поделиться своим опытом по этой проблеме:

Я столкнулся с этой проблемой, и когда я открыл диспетчер задач, я заметил, что многие задачи выполняются, и они были связаны с моей папкой проекта.

Итак, я перезапустил свой компьютер, и когда он включился, я смог установить все, что мне было нужно, так что проблема была решена сама собой, это сработало для меня, надеюсь, это кому-то поможет ...

  • Android CD Android && ./gradlew Clean
  • ios откройте xcode, затем выберите продукт => очистите все проблемы и очистите папку сборки

затем запуск пряжи --reset-cache

Я сегодня тоже затронул этот вопрос. Причина была довольно глупой - vscode авто импортировал что-то из express-validatorи вызвал ошибку.

Просто упомяну об этом на случай, если кто-то выполнил все шаги, чтобы очистить кеш / удалить модули или что нет.

Рассмотрите возможность использования приведенного ниже кода для чистой сборки iOS:

      cd ios && xcodebuild clean && cd .. && npm run ios

У меня была аналогичная проблема, я попытался очистить все возможные кеши (попробовал почти все решения выше), и единственное, что у меня сработало, - это убить приложение expo и перезапустить его.

Для андроида и нпм

      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

Вот несколько сценариев очистки кэша, которые можно добавить в package.json. Он включает в себя обходной путь «секретного кэша» для очистки кэша, который пропущенreact-native clean.

Они очистят все собственные кеши сборки и реагирования, но не кеши пакетов или модулей, что обычно и является тем, что вам нужно.

          "clean:gradle": "cd android && ./gradlew --stop; rm -rf ~/.gradle/caches/*",
    "clean:android": "yarn clean:secret-cache && react-native clean --include android,metro,watchman",
    "clean:ios": "yarn clean:secret-cache && react-native clean --include metro,watchman && cd ios && xattr -w com.apple.xcode.CreatedByBuildSystem true build && xcodebuild clean; cd ..",
    "clean:secret-cache": "npx react-native start --reset-cache --projectRoot null 1>/dev/null 2>&1 || true",

Скрипт «secret-cache» позволит вашим обновлениям .env работать, даже если у вас возникнет ошибка реагирования на собственный кеш dotenv:https://github.com/goatandsheep/react-native-dotenv#cacheing

Затем добавьте их в package.json.yarn clean:ios && yarn iosилиyarn clean:android && yarn android

В некоторых случаях этого может быть недостаточно (например, act-native-auth0 все еще кэширует auth0Domain). Итак, вот ядерный вариант (требуется обновление package.json выше):

      # Nuclear option (100% definitely clean everything) - go get a coffee or something
yarn clean:secret-cache && npx react-native clean-project-auto && yarn clean:gradle && yarn && cd android && ./gradlew assemble

Запустите в своем терминале: expo prebuild --clean

ЧТОБЫ Очистить кеш в IOS/Xcode

Удалить папки в /Users/{YOUR_USERNAME}/Library/Developer/Xcode/DerivedData/и попробуй еще раз.

      rm ~/Library/Developer/Xcode/DerivedData/* 
Другие вопросы по тегам