npm 问题(一)

今天在使用npm安装程序时出现了以下问题如下:

我解决了问题,这是由于缓存清除错误(但他们自动修复)有一些数据损坏,没有让JSON文件解析,使用以下命令可以解决:

即: npm cache clean --force,若这个方法没有生效,建议找到npm文件(可通过 npm config list),

然后从文件夹中删除完整的npm缓存和npm文件,然后完全重新安装。 刚开始不太理解这个命令,所以Google了一下 npm官网上关于cache有以下命令:

npm cache add <tarball file> 添加文件

npm cache add <folder> 添加文件夹

npm cache add <name>@<version>通过npm添加文件并规定版本号(可选)

npm cache clean [<path>]已知路径的缓存清除

npm cache verify 验证缓存包

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

clean:删除缓存文件夹中的所有数据。

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

那么为什么缓存包会出现问题呢?官网上是这样说的:

npm将缓存数据存储在已配置缓存中的opaque目录中,名为_cacache。 此目录是基于cacache的内容可寻址缓存,它存储所有http请求数据以及其他与包相关的数据。 该目录主要通过pacote访问,pacote负责从npm @ 5开始的所有包提取。

通过缓存的所有数据都经过完全验证,以确保插入和提取的完整性。 高速缓存损坏将触发错误,或发出信号以确认必须重新获取数据,这将自动执行。 出于这个原因,除了回收磁盘空间之外,永远不需要清除缓存,因此为什么现在清理需要--force运行。

目前没有通过npm公开的方法来检查或直接管理此缓存的内容。 要访问它,必须直接使用cacache。

npm不会自行删除数据:缓存将随着新软件包的安装而增长。 简而言之就是npm会把缓存存在一个名为_acache的目录中,缓存会在所有用到npm包的地方,所以会出现损坏,这样就导致npm运行时出错,而catch的清空是需要携带 --force参数方可生效,此外NPM不会自行删除数据:随着新包的安装,缓存将增长。

转载于:https://juejin.im/post/5bfe879a51882516dc619872

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值