Как удалить пакет из магазина pnpm или принудительно повторно загрузить его?
Я использую pnpm для управления проектом npm, и случайно изменил содержимое установленного пакета, скажем, очистил содержимое node_modules/jquery/dist/jquery.js
,
Проблема не в том, как я переустанавливаю jquery (pnpm install jquery
), содержимое этого файла всегда пусто. Я даже пытался удалить jquery
из магазина pnpm ~/.pnpm-store/
, но это не работает (возможно, я удалил неправильный пакет)
Наконец, я должен удалить все файлы в ~/.pnpm-store
, чтобы загрузить все, это решает мою проблему, но я хочу знать, если есть какой-либо более простой способ сделать это.
1 ответ
{Мой ответ будет охватывать pnpm v2.16.2
}
Краткий ответ: беги pnpm install --force
, (pnpm update
может сработать так же)
Длинный ответ Когда ты просто бежишь pnpm install
, pnpm сравнивает нужный файл термоусадочной пленки (project/shrinkwrap.yaml
) к текущему (project/node_modules/.shrinkwrap.yaml
). Они равны в вашем случае, так node_modules
не тронут.
когда --force
используется, пакеты проверяются и пересылаются из магазина. Повторное подтверждение означает, что его целостность проверена. Вы удалили файл из jquery
, поэтому проверка не удастся, и пакет будет переупакован в магазин и повторно подключен к node_modules
,
Кроме того, вы можете удалить свой проект node_modules
и беги pnpm install
, Это также проверило бы целостность jquery
прежде чем связать его с магазином.
Это, как говорится, я думаю, pnpm install jquery
Также, вероятно, следует проверить целостность jquery. Мы создадим проблему для этого в репозитории pnpm.
И, возможно, мы можем добавить некоторые дополнительные команды для проверки каждого пакета в node_modules
и повторно распаковывает все измененные зависимости.
В настоящее время доступна связанная команда pnpm store status, которая выводит список измененных пакетов