{Мой ответ будет охватывать 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
и повторной распаковки всех измененных зависимостей.
Aв настоящее время доступна связанная команда pnpm store status , которая печатает список измененных пакетов