Как удалить пакет из магазина 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, которая выводит список измененных пакетов

Другие вопросы по тегам