npm cache原理及实践

581 阅读1分钟

功能解析

npm@5会在全局建立一个非透明存储文件夹(Windows: %LocalAppData%\npm-cache, Posix: ~/.npm),用于存储所有http请求数据以及其他与包相关的数据。

然后,如果用户安装任何相同的软件包,npm将直接从缓存中安装它们,而不必再次从npm下载它们。

但是,如果安装了不同版本的依赖项并相互冲突,有时缓存可能会损坏。可以清除缓存 使得能够再次从npm安装软件包。

命令说明

  • add:将指定的包添加到本地缓存。此命令主要用于npm内部使用,但它可以提供一种将数据显式添加到本地安装缓存的方法。

  • clean:从缓存文件夹中删除所有数据。请注意,这通常是不必要的,因为npm的缓存是自我修复的,并且可以抵御数据损坏问题。如果确定要清除,可以使用--force强制执行

  • verify:验证缓存文件夹的内容,垃圾收集任何不需要的数据,并验证缓存索引和所有缓存数据的完整性。

实际案例

比如我查看自己的电脑,就发现了老大难的node-sass的缓存数据(好像我也没特意下载,莫非npm在安装时自己缓存的?)

image.png

于是乎直接去安装node-sass,可以看到这个文件是走了缓存的:

image.png

所以说在遇到难以下载的npm包时,利用cache也是个不错的思路