Как очистить кеш npm

Обновлено: 21.11.2024

Этот файл содержит двунаправленный текст Unicode, который может быть интерпретирован или скомпилирован не так, как показано ниже. Для просмотра откройте файл в редакторе, который показывает скрытые символы Unicode. Подробнее о двунаправленных символах Юникода

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 установить && npm start -- --reset-cache
RN >= 0.63 - watchman watch-del-all && rm -rf node_modules && npm install && rm -rf /tmp /metro-* && npm run 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
Windows - del %appdata%\Temp\react-native-* & cd android & gradlew clean & cd .. & del node_modules/ & npm cache clean --force & npm install & npm start -- --reset-cache

прокомментировал tomlobato 12 января 2020 г.

Хорошо, спасибо @jotapepinheiro !
Зачем здесь нужна «реактивная нативная ссылка»?

andresprogra прокомментировала 15 января 2020 г.

watchman watch-del-all && rm -rf node_modules/ && npm cache clean --force&& npm install && npm start -- --reset-cache

safarishi прокомментировал 10 февраля 2020 г.

У меня было так много проблем с очисткой кеша. Оказывается, у сборщика метро и карты скорости изменилась структура каталогов. 👎

Это скрипт, который я использую для очистки кеша:
watchman watch-del-all && rm package-lock.json && rm -rf node_modules && rm -rf $TMPDIR/metro- * && rm -rf $TMPDIR/haste-map-* && npm install

Это стоило нам ДНЕЙ, надеюсь, кому-то это поможет :)

Что на самом деле означает следующая команда "rm -rf $TMPDIR/metro-* && rm -rf $TMPDIR/haste-map-*"?

sakillin прокомментировал 19 февраля 2020 г.

Я только что столкнулся с проблемой, которая требовала выяснить, как очистить все, что связано со сборкой React Native, и я чувствую всю боль здесь. Для здравого смысла я, наконец, пошел и докеризировал сборщик и указал нативное приложение на контейнер, просто чтобы убедиться, что я не сумасшедший. Это помогло, так как я мог, по крайней мере, знать, что мое приложение работает теоретически.

Очень досадно, что нужно посетить 6 разных мест, чтобы получить этот сброс.

  • rm -rf означает рекурсивное удаление всех файлов/папок по следующему пути
  • $TMPDIR – это переменная среды для временного каталога вашей системы. Она не одинакова на каждой платформе.
  • $TMPDIR/metro-* означает каждый файл/папку, совпадающую с подстановочным знаком * (например, metro-foo и metro-bar)
  • && означает "запустить и эту команду".

Поэтому вся команда означает рекурсивную очистку всех файлов, начинающихся с "metro-" или "haste-map-", из временного каталога вашей системы.

прокомментировал the-habu 30 марта 2020 г. •

Еще более простое решение:
npm uninstall -g react-native-cli
rm -rf ~/Projects/react-native-*
echo "127.0.0.1 facebook. github.io" > /etc/hosts

Оставьте RN в корзине, где ему и место. Вы будете мне благодарны.

Опасно идти одному, возьми это: 🖕

прокомментировал shardick 11 апреля 2020 г. •

Работает в Windows 10 и нативной версии >= 0,60

vnshah прокомментировал 19 апреля 2020 г.

Спасибо позже или вообще не благодарите. В любом случае все хорошо:
npm start -- --reset-cache

Работает как шарм! Спасибо, чувак.

прокомментировал wikramdas 23 апреля 2020 г.

Привет, ребята, надеюсь, у вас все хорошо.
У меня проблема с приложением React Native. Я хочу добавить параметр очистки кеша в приложение React Native, чтобы пользователи могли очищать кеш приложения, когда они хотят очистить в основном мое приложение — это приложение для обоев.
Пожалуйста, помогите мне, если это возможно.
Спасибо

прокомментировал disrae 19 мая 2020 г.

Хммм, у меня не работает, и я не использую npm start, но я попытался очистить кеш npm и запустить команду watchmen.

Прокомментировал Jp3rd 28 мая 2020 г.

  • rm -rf означает рекурсивное удаление всех файлов/папок по следующему пути
  • $TMPDIR – это переменная среды для временного каталога вашей системы. Она не одинакова на каждой платформе.
  • $TMPDIR/metro-* означает каждый файл/папку, совпадающую с подстановочным знаком * (например, metro-foo и metro-bar)
  • && означает "запустить и эту команду".

Это сработало для меня, имена файлов кэша метро изменились. Я использую РН 0,59

Carlos767 прокомментировал 4 июня 2020 г.

akinolu52 прокомментировал 6 июня 2020 г.

@Carlos767
закройте терминал, удалите node_modules проекта, затем
npm i && npm start -- --reset-cache

прокомментировал sebaxf 9 июня 2020 г.

Спасибо позже или вообще не благодарите. В любом случае все хорошо:
npm start -- --reset-cache

Прокомментировал Цишэн-Лу 22 июня 2020 г.

Спасибо! удаление node_modules & npm install & npm start -- --reset-cache работает нормально.

utkalpatel-dev прокомментировал 30 июня 2020 г.

У меня было так много проблем с очисткой кеша. Оказывается, у сборщика метро и карты скорости изменилась структура каталогов. 👎

Это скрипт, который я использую для очистки кеша:
watchman watch-del-all && rm package-lock.json && rm -rf node_modules && rm -rf $TMPDIR/metro- * && rm -rf $TMPDIR/haste-map-* && npm install

Это стоило нам ДНЕЙ, надеюсь, кому-то это поможет :)

ты спас мой день, братан.. Я устал от всего, но ничего не сработало, и, наконец, твое решение рулит

прокомментировал thatsatul 30 августа 2020 г.

Та же ошибка.
ошибка: сбой объединения: Ошибка: невозможно разрешить модуль @babel/runtime/helpers/interopRequireDefault из /index.android.js: модуль @babel/runtime/helpers/interopRequireDefault не существует в карте модуля Haste

Добавление пряжи @babel/runtime не работает.

react-native start --reset-cache не работает.

Удаление сторожа не работает.

Команда ниже у меня тоже не работает.
watchman watch-del-all && rm -rf $TMPDIR/react-native-packager-cache-* && rm -rf $TMPDIR/react-* && rm -rf $TMPDIR/metro-* && rm -rf node_modules/ && очистка кеша пряжи --force && пряжа установить && реактивный запуск --reset-cache

Информация о React Native Environment:
Система:
ОС: macOS 10.14.6
ЦП: (8) x64 Intel(R) Core(TM) i5-8257U CPU @ 1,40 ГГц < br />Память: 82,13 МБ / 8,00 ГБ
Оболочка: 3.2.57 - /bin/bash
Двоичные файлы:
Узел: 10.16.3 - /usr/local/bin/node
/>Пряжа: 1.19.1 - /usr/local/bin/yarn
npm: 6.9.0 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin /watchman
SDK:
iOS SDK:
Платформы: iOS 13.1, DriverKit 19.0, macOS 10.15, tvOS 13.0, watchOS 6.0
Android SDK:
Уровни API: 28 , 29
Инструменты сборки: 28.0.3, 29.0.2
Образы системы: android-28 | API Google Intel x86 Atom, android-28 | Google Play Intel x86 Atom, android-29 | Google API Intel x86 Atom
IDE:
Android Studio: 3.5 AI-191.8026.42.35.5900203
Xcode: 11.1/11A1027 - /usr/bin/xcodebuild
npmPackages:
/>React: 16.8.6 => 16.8.6
React-native: 0.59.9 => 0.59.9
npmGlobalPackages:
react-native-cli: 2.0.1

Если есть другие решения, предложите. Полностью застрял на этой проблеме в течение 2 дней.

Каждый раз, когда вы устанавливаете пакет с помощью NPM, файлы и данные пакета будут сохранены в виде файла .tar в папке кэша NPM (автоматически настроенной во время установки), чтобы их можно было использовать позже при выполнении той же команды установки npm.

По умолчанию файлы кэша NPM будут храниться в папке ~/.npm/_cacache.

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

С кэшированными файлами NPM оптимизирует для вас количество загрузок и использование Интернета.

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

Например, после 9 месяцев использования нового ноутбука я обнаружил, что размер кэша NPM вырос до 705 МБ.

Вот почему вам может понадобиться очистить файлы кеша NPM: вы хотите очистить пакеты, которые, как вы знаете, вам больше не понадобятся, включая старые версии ваших зависимостей, и освободить место на диске.

Теперь, прежде чем чистить кеш, вы можете сначала проверить кеш с помощью команды npm cache verify, чтобы узнать, насколько велик размер кеша:

Обратите внимание, что процесс проверки может занять довольно много времени в зависимости от размера вашего кеша.

Теперь, когда я знаю, что размер моего кеша составляет 705806589 байт или 705 МБ, я очистю кеш с помощью команды npm cache clean --force.

Команда очистки кеша будет искать файл package.json в текущем каталоге, где вы запускаете команду.

Сначала я думал, что кеш будет очищен только от зависимостей, перечисленных в файле package.json, но после запуска команды я обнаружил, что все кешированные файлы были полностью удалены.

После завершения выполнения команды очистки кеша вы можете снова запустить npm verify cache, чтобы посмотреть размер кеша.

Следующее показывает, что содержимое моего подтвержденного кеша было полностью очищено:

И вот как вы можете очистить кеш NPM 😉

Дополнительную информацию о кэше NPM можно найти здесь.

Заключение

Система кэширования NPM позволяет сократить использование интернет-трафика, сохраняя данные пакета и повторно используя их при повторной установке того же пакета.

Начиная с версии 5 NPM, система кэширования NPM была улучшена, чтобы она могла самовосстанавливаться и противостоять проблемам с повреждением данных.

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

Статьи по теме:

Повысьте уровень своих навыков программирования

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

сообщить об этом объявлении

сообщить об этом объявлении

О нас

Натан Себхастян – инженер-программист, который любит писать технические руководства. Изучайте JavaScript и другие концепции технологий веб-разработки с помощью простых для понимания объяснений, написанных простым английским языком.

Если вы когда-нибудь столкнетесь со странными ошибками в npm, такими как «Пожалуйста, запустите очистку кеша npm», вам может потребоваться очистить или обновить кеш npm.

Чтобы это исправить, попробуйте запустить npm cache clean .

Выполнить: «Проверка кэша npm» для npm версии 5 и выше

Однако если вы используете npm v5 и выше, предполагается, что npm является самовосстанавливающимся, и вы можете получить следующее сообщение об ошибке при попытке очистить кеш npm:

Поэтому, если вы получили эту ошибку, попробуйте запустить проверку кэша npm.

Если это не решит вашу проблему, вы также можете попробовать удалить папку node_modules в своем проекте и повторно запустить npm install .

Выполнить: «npm cache clean –force»

А если очистить кеш npm и проверить кеш npm . оба не работают, и вы по-прежнему не можете очистить кеш, вы можете принудительно очистить кеш, выполнив:

очистка кеша npm --force или очистка кеша npm -f .

Это приведет к принудительному удалению кэша npm на вашем компьютере.

Что делает очистка кэша npm?

Когда вы устанавливаете пакеты npm на свой компьютер, npm сначала добавит пакеты и зависимости в вашу локальную папку кеша npm. Это будет ~/.npm в Posix или %AppData%/npm-cache в Windows, согласно документации по npm.

Затем npm установит пакеты в папку node_modules локального проекта.

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

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

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

Подпишитесь, чтобы получать электронные письма о новых сообщениях и другую информацию. Отменить подписку в любое время.

Отказ от ответственности перед партнерами

Я участвую в различных партнерских программах, и мой контент содержит партнерские ссылки. Если вы покупаете по этим ссылкам, я могу получить комиссию от продавца бесплатно для вас. Это один из способов поддержать этот сайт!

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

Диспетчер пакетов Node (npm) — это среда выполнения на Javascript для веб-сайтов. Это динамическое приложение, которое объединяет все требования к среде для локального размещения вашего сайта.

По мере того, как вы работаете над своим веб-проектом, создается куча кешей для часто используемых элементов, которые необходимо очищать, поскольку это может сильно повлиять на производительность вашего бэкенда. Вот почему npm имеет функцию очистки кеша для решения этой проблемы.

Кроме того, вся информация в npm на 100 % проверяется на целостность при удалении и вставке. Это вызывает ошибку повреждения кэша и побуждает пакет автоматически извлекать данные. Поэтому вы должны быть уверены, прежде чем очищать кеш по какой-либо причине. Можно подумать об избавлении от места на диске.

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

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

Чтобы очистить кеш в NPM, мы должны выполнить команду npm cache clean --force на нашем терминале.

clean Полностью очищает папку кеша.

Вы также можете проверить кеш, используя приведенную ниже команду.

Примечание: npm удаляет только поврежденное или удаленное содержимое из каталога. Он не может гарантировать, что ранее сохраненные данные будут позже доступны. Он может только гарантировать, что вставленная информация будет такой же, как данные, возвращенные кешем.

Распространенные ошибки

  • Случайные ошибки
  • Ошибки разрешения
  • Нет места
  • Ошибка контроля версий
  • Неверный JSON

Давайте рассмотрим это подробно.

Случайные ошибки

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

Если проблема не устранена при установке npm, можно выбрать использование параметра «подробный», если он несовместим. Если вы все еще сталкиваетесь с той же проблемой и обнаруживаете, что у вас есть ошибка совместимости вашей версии, это просто потому, что вы используете старую версию npm.

Ошибки разрешения

Эта ошибка связана с установкой Windows. Это вызвано неправильной установкой модулей NPM. Ошибка может выглядеть примерно так.

Проблему можно решить, определив, доступна ли для записи упомянутая выше ошибка в вашем аккаунте.

Нет места

  1. Вы можете либо освободить место на диске, либо переместить новое пространство, настроив tmp/path/to/big/drive/tmp.
  2. Вы также можете установить узел в месте, достаточном для письма.

Ошибка контроля версий

Эта проблема возникает, если на вашем компьютере не запущен Git. Ошибка может выглядеть так, как показано на изображении ниже.

Проблему можно решить, используя информацию из файла NPM

Необходимо установить программу git. Вам также может понадобиться возможность включить свои данные Git в свой профиль NPM. Это можно сделать с помощью командной строки или через веб-сайт.

Читайте также: