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

Обновлено: 06.07.2024

Кто-нибудь знает, как полностью очистить кэш для npm? В принципе, мне нужно запустить webpack (используя в качестве пакета react npm), и раньше он работал, а теперь нет. Кто-нибудь знает, как правильно очистить кэш npm и в каком каталоге это сделать?

Кроме того, я также прочитал кое-что о том, что ваша переменная environment PATH должна быть правильной для очистки кэша, и я каким-то образом испортил это. Под PATH теперь он, кажется, объединил два пути, один для моего mongoDB и один для npm, оба связаны вместе со следующим значением:

Будет ли недопустимый PATH проблемой (сам npm работает нормально) для очистки кэша? (Я исправлю PATH с добавлением каталога в переменную окружения PATH в Windows ).

2 ответа

Я пытаюсь понять, как npm работает над очисткой и установкой кэша. Всякий раз, когда мне нужно получить последнюю последнюю версию, я стараюсь это сделать: $ npm cache clean $ npm install Но он не может забрать последние зависимости, поэтому мне всегда приходится удалять старую зависимую папку.

Эта команда принудительно очистит весь кэш NPM:

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

Похожие вопросы:

Перед очисткой кэша npm cache clear npm работает нормально. После очистки кэша он не работает. Журнал ошибок ниже предполагает проблему с подключением к интернету, но подключение к интернету просто.

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

Цель состоит в том, чтобы заполнить только кэш npm. Эта цель возникает из-за необходимости использовать ограничительные среды сборки без доступа к реестру npm после первоначальной настройки. Есть ли.

Я пытаюсь понять, как npm работает над очисткой и установкой кэша. Всякий раз, когда мне нужно получить последнюю последнюю версию, я стараюсь это сделать: $ npm cache clean $ npm install Но он не.

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

Есть ли у нас какая-либо опция/библиотека в разработке приложений android, чтобы ограничить очистку кэша нашего приложения? Мы столкнулись с проблемой, основанной на сценарии. С тех пор у нас есть.

С помощью моего сайта Netlify я могу вручную выбрать запуск deployment в моей ветке master и выбрать очистку кэша. Однако я не могу найти способ сделать это с помощью моей ветви предварительного.

Некоторое время назад у меня были проблемы с кешем npm на наших сборочных машинах. Время от времени нам приходилось делать npm cache clean вручную, и это решало различные проблемы, причину которых мы до сих пор не уверены. Итак, через некоторое время мы включили npm cache clean во все наши сценарии сборки, с тех пор у нас не было загадочных проблем с npm i , однако теперь параллельные сборки, очевидно, влияют друг на друга.

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

3 ответа

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

Это устранило бы необходимость в npm cache clean , поскольку оно всегда начиналось бы с пустым кешем.

В моем случае я столкнулся с похожей проблемой при запуске нескольких экземпляров 'npm install' на виртуальной машине, используемой для сборки (Windows).

Поскольку это была виртуальная машина, используемая только для сборки, не было никакой другой программы, блокирующей файлы. Я пытался отключить различные настройки антивируса, которые не работали. «Очистка npm кэша» и «Проверка кэша npm» работали, но это не было для меня правильным решением, так как я не могу догадаться, когда кто-то запустит задание на сборку из Jenkins для другого выпуска / среды, что приведет к множественному экземпляру «установки npm», а следовательно я не могу добавить его в скрипт сборки и не могу войти в виртуальную машину и каждый раз вручную очищать / удалять папки кэша.

Наконец, после некоторых исследований я запустил «npm install» с отдельным путем кеша для каждого задания, используя следующую команду:

Поскольку все задания, запущенные одновременно, теперь имели отдельный путь кеша, а не общий глобальный путь (Users / AppData / Roaming /), эта проблема была исправлена, поскольку задания больше не пытались заблокировать и получить доступ к одному и тому же файлу, из общего кеша npm.

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

Мне не удалось найти этот способ указать путь к кешу в документации npm, но я попробовал, и он сработал. Я использую npm6 и похоже, что он работает с npm5, как @ArchNoob, упомянутый в комментарии

Как указано в документе npm-config:

  1. Сбой сценария жизненного цикла не блокирует прогресс.
  2. публикация клобберов ранее опубликованных версий.
  3. пропускает кеш при запросе из реестра.
  4. предотвращает проверку на засорение файлов, отличных от npm.

Возможно, использование -f / --force - самый простой способ отключить кеш npm.

Я получаю эту ошибку при запуске sudo npm install . На моем сервере был установлен npm ранее. Я пытался удалить файл package-lock.json и npm cache clean --force , но это не сработало.

Моя версия npm 5.3.0.

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

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

Мой работал после переключения на соединение vpn, так что это определенно проблема с подключением

Это сработало для меня:
npm cache verify

Затем я перезапустил:
npm install -g create-react-app

И он установлен, как и ожидалось: проблема решена

Некоторые другие упомянутые решения:

npm cache clean --force

Удаление папок npm и npm-cache в папке Users%username%\AppData\Roaming (windows 7) и запуск npm install

Обновите npm с помощью npm я -g npm

npm cache verify

npm cache clean

Выполните эти шаги, чтобы решить проблему:

  1. Найти все устаревшие пакеты и обновить тему:
    npm outdated -g
    sudo npm я -g outDatedPKG
  2. Обновите npm до последней версии с помощью:
    sudo npm я -g npm
  3. Удалить package-lock.json .
  4. Удалить каталог _cacache в

    Добавьте прокси к .npmrc в

  1. Попробуйте снова! медленная интернет-связь и цензура могут вызвать эту ужасную проблему.

npm cache clear --force && npm install --no-shrinkwrap --update-binary

npm config set package-lock false

Спасибо! Это было очень полезно, и я решил свою проблему, выбрав некоторые из предложенных вариантов. Шерил, сначала: спасибо, что нашли время ответить на это. Ясно, что ваш ответ был полезен для людей. Могу я спросить вас, что делает каждая из этих альтернатив и почему некоторые могут работать, а другие нет? Спасибо! @AndresF. У меня нет глубокого понимания того, как работает нижняя часть пряжи или когда / почему некоторые методы работают над другими. В некоторых случаях они, по сути, выполняют одно и то же, но запускают его по-другому. Я связался с проблемой github, где были представлены все эти решения - это источник скомпилированного списка в моем ответе. Я предлагаю исследовать нижний живот пряжи и npm, или проверить связанную с ним проблему github, возможно, при необходимости обращаясь к отдельным авторам. В случае, если любое обновление в версии узла js на локальной машине, это будет через эту ошибку. Одна из этих 87 разных вещей, которые можно попробовать, сработала для меня!

Удалите файл package-lock.json, а затем попробуйте установить

Спасибо за этот комментарий, он помог мне решить проблему, когда я развертывал сайт GatsbyJS в Netlify.

Моя проблема была 2 вещи:

  1. Плохой файл package-lock.json
  2. Существование npm-shrinkwrap.json вместе с файлом package-lock.json

Что я сделал:

  1. Удален файл package-lock.json
  2. Удалите файл npm-shrinkwrap.json
  3. Ran npm снова установить (который воссоздал хороший файл блокировки пакетов)
У меня была эта проблема при сборке AWS Codebuild. Это сработало для меня. Благодарю.

Это сработало для меня.

Это не добавляет никакой ценности к ответам, которые уже здесь. В комментарии с наибольшим количеством голосов уже упоминается npm cache clean --force , поэтому этот ответ читается просто как шум. Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, как и / или почему он решает проблему, улучшит долгосрочную ценность ответа.

В качестве обходного пути выполните следующие шаги:

  1. Перейдите в каталог проекта
  2. Удалите каталог node_modules: rm -rf node_modules
  3. Удалить файл package-lock.json: rm package-lock.json
  4. Очистить кеш: npm cache clean --force кеш npm cache clean --force
  5. Запустить npm install --verbose Если после выполнения вышеуказанных шагов все еще существует проблема, пожалуйста, сообщите нам вывод команды установки с помощью --verbose.

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

Интересно видеть разницу:

Изображение 3960

Таким образом, в пакете lock.json действительно есть контрольная сумма целостности, чтобы убедиться, что файл, который вы загружаете, не был подделан. Это просто так, что контрольная сумма целостности была заменена в нашем пакете lock.json с SHA1 вместо контрольной суммы SHA-512. Я понятия не имею, как это произошло.

@Mamen в корневом каталоге вашего приложения, следующий tp package.json. В package.json перечислены зависимости (пакеты), в которых нуждается ваше приложение для компиляции / запуска. Когда вы запускаете yarn install или yarn , пакеты, перечисленные в этом файле, будут загружены и установлены, чтобы можно было запустить проект / приложение. Файл «lock» - это одно из различий между npm и yarn, гарантирующее версии пакетов и целостность.
  1. Удалить package-lock.json;
  2. Удалить папку AppData\Local\npm\cache или AppData\Roaming\npm\cache;
  3. Удалить папку node_modules.staging;
  4. Запустите npm install снова.

После этого все прошло гладко.

Я застрял в этом надолго, и это то, что мне помогло.

Нашел этот ответ после копания в проблемах GitHub !!

У меня была очень похожая проблема, и в моем случае она работала:

Это ядерная опция, так как она очищает каждый пакет от кеша, как он здесь.

Есть несколько решений этой проблемы. Я сталкивался с этим много раз, и всегда мне помогали разные вещи.

A. Сначала попробуйте очистить кеш: очистка кеша npm cache clean --force затем npm install

Б. Во-вторых, вы можете попробовать npm install --update-binary

C. Третий вариант - попробовать A и удалить папку node_modules, а затем npm install

D. Четвертый вариант заключается в удалении nodejs, перезагрузке и переустановке, а затем попробуйте npm install

E. Последним из моих вариантов, который работал для меня, было удаление папок npm и npm-cache в Users%username%\AppData\Roaming и запуск npm install

Вы можете попробовать и другие комбинации, обычно лучше всегда делать A и хотя бы очистить кеш или удалить папку node_modules.

Вы можете вызвать window.location.reload (true), чтобы перезагрузить текущую страницу. Он будет игнорировать любые кешированные элементы и получать с сервера новые копии страницы, css, изображений, JavaScript и т. Д. Это не очищает весь кеш, но имеет эффект очистки кеша для страницы, на которой вы находитесь.

Однако ваша лучшая стратегия заключается в том, чтобы указать путь или имя файла, как указано в других ответах. Кроме того, см. Revving Filenames: не используйте querystring по причинам, которые нельзя использовать в ?v=n качестве вашей схемы управления версиями.

Вы не можете очистить кеш с помощью javascript. Обычный способ - добавить в файл номер версии или последнюю обновленную временную метку, например:

Попробуйте изменить файл src файла JavaScript? Из этого:

Этот метод заставит ваш браузер загружать новую копию JS-файла.

Помимо кэширования каждый час или каждую неделю, вы можете кэшировать данные файла.

Вы также можете принудительно перезагрузить код каждый час, например, в PHP:

Вы можете вызвать window.location.reload (true), чтобы перезагрузить текущую страницу. Он будет игнорировать любые кешированные элементы и получать с сервера новые копии страницы, css, изображений, JavaScript и т. Д. Это не очищает весь кеш, но имеет эффект очистки кеша для страницы, на которой вы находитесь.

Однако ваша лучшая стратегия заключается в том, чтобы указать путь или имя файла, как указано в других ответах. Кроме того, см. Revving Filenames: не используйте querystring по причинам, которые нельзя использовать в ?v=n качестве вашей схемы управления версиями.

Вы не можете очистить кеш с помощью javascript. Обычный способ - добавить в файл номер версии или последнюю обновленную временную метку, например:

Попробуйте изменить файл src файла JavaScript? Из этого:

Этот метод заставит ваш браузер загружать новую копию JS-файла.

Помимо кэширования каждый час или каждую неделю, вы можете кэшировать данные файла.

Вы также можете принудительно перезагрузить код каждый час, например, в PHP:

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