Как очистить кеш-реактив?
В естественной разработке при сборке приложения используется несколько кэшей:
- Реактивный кеш упаковщика
- Эмулятор кеша
- Папка кэширования на стороне Java (.gradle) (только в Android)
- кэш 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 -> Сборка -> Чистый проект
Вот что у меня работает:
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 разных случаев.
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
- NPM> =5 -
watchman watch-del-all && rm -rf $TMPDIR/react-* && rm -rf node_modules/ && npm cache verify && npm install && npm start -- --reset-cache
- Окна -
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: если вы уверены, что модуль существует, попробуйте следующие шаги:
- Четкие часы сторожа: npm watchman watch-del-all
- Удалите node_modules: rm -rf node_modules и запустите yarn install
- Сброс кеша Metro: yarn start --reset-cache
- Удалите кеш: 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?
запуск 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
ЧТОБЫ Очистить кеш в IOS/Xcode
Удалить папки в
/Users/{YOUR_USERNAME}/Library/Developer/Xcode/DerivedData/
и попробуй еще раз.
rm ~/Library/Developer/Xcode/DerivedData/*