npm 怎么老出错!!!
1、cb() never called! 缓存问题!
正确操作:
删除 package.json-lock → 删除node_modules → npm cache clean * → npm cache verify * → npm install
npm cache clean --force
- 此操作之前请删除 node_modules
- 清除:从缓存文件夹中删除所有数据。请注意,这通常是不必要的,因为npm的缓存是自我修复的,并且能够抵抗数据损坏问题。npm 下载的时候,会优先跑到 npm缓存取数据,如果缓存没有就取网络上下载。
npm cache verify
此操作之前请删除 node_modules
verify: Verify the contents of the cache folder, garbage collecting any unneeded data, and verifying the integrity of the cache index and all cached data. 验证:验证缓存文件夹的内容,垃圾收集任何不需要的数据,验证缓存索引和所有缓存数据的完整性。要对现有缓存内容运行脱机验证,请使用npm cache verify。
缓存的意义
参考:https://juejin.cn/post/6984062167339237389
npm 将缓存数据存储在配置的、命名的不透明目录中。此目录是一个基于
卡卡奇
的内容可解决缓存,存储所有 http 请求数据以及其他与包相关的数据。此目录主要通过图书馆访问,负责所有包取自npm@5。cache
_cacache
pacote
通过缓存的所有数据都经过充分验证,以便在插入和提取时获得完整性。缓存损坏将触发错误,或信号数据必须重新受档,它会自动这样做。因此,除了回收磁盘空间之外,绝不应出于任何其他原因清除缓存,因此为什么现在需要运行。
pacote
clean
--force
目前没有通过 npm 暴露的方法来检查或直接管理此缓存的内容。要访问它,必须直接使用。
cacache
npm 不会自行删除数据:随着新封装的安装,缓存将增长。
缓存设计的说明
npm 缓存严格来说是缓存:不应将其用作包裹数据的持久和可靠的数据存储。npm 无法保证稍后会提供以前缓存的数据,并且会自动删除已损坏的内容。缓存的主要保证是,如果返回数据,该数据将正是插入的数据。
要运行现有缓存内容的离线验证,请使用。
npm cache verify
3、node 版本问题:安装新版本node
4、⭐最终 cnpm install 弄出来了!/(ㄒoㄒ)/~~ 但是!安装出来的版本和 package.json需要的版本不一致!运行不起来.....cnpm 是TM怎么回事!下次不用了