我使用 pnpm 来管理 npm 项目,我不小心修改了已安装包的内容,比如说我清除了node_modules/jquery/dist/jquery.js.
问题是无论我如何重新安装jquery( pnpm install jquery),该文件的内容始终是空的。我什至尝试jquery从 pnpm store删除~/.pnpm-store/,但这不起作用(也许我删除了错误的包)
最后,我必须删除 中的所有文件~/.pnpm-store,才能下载所有内容,它解决了我的问题,但我想知道是否有更简单的方法来做到这一点。
Zol*_*han 21
{我的答案将涵盖 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,它打印变异包的列表
| 归档时间: |
|
| 查看次数: |
27755 次 |
| 最近记录: |