公司用的是内网,所以 npm 下载也是通过公司的某个服务做代理实现安装的。
安装依赖的时候,总会有段时间,安装依赖出问题。
如图:
在这里插入图片描述
前几天还能正常安装,今天突然就报 no such file or directory 这个错误。
报的位置都是在 node_modules 的 .stagin 文件夹下面,如图:在这里插入图片描述
其实 .stagin 文件夹是只有安装依赖的时候才会出现,安装成功后就会自动消失。但安装的过程中依赖都是在 .stagin 文件夹下的,安装成功后,就直接放在 node_modules 目录下了。
查看所有报 no such file or directory的错误,无非就是在 core、echarts等个别依赖上出现。

例如:我自己写的依赖(我清楚知道打包后的文件内容,所以用它举例),其实在 .stagin 文件中就已经安装完成了(没有缺漏文件),所以没报
no such file or directory这个错误
在这里插入图片描述
相信大多数依赖也是如此。
但是个别的依赖,如报这个错误的echarts:
在这里插入图片描述
展开这个文件夹发现啥都没有,那 npm 报这个 echarts 里的文件找不到也很正常了。

原因

那分析上诉过程,也大致猜得到和安装依赖时的 npm 服务代理(npm默认的代理服务、cnpm淘宝镜像代理、其它代理等)有关,原因基本有两个:

  1. 通过锁定依赖的 package-lock.json 去安装,可能 package-lock.json 中 resolved 需下载依赖的地址,在正在使用的 npm 代理的服务中找不到,导致相应的依赖文件下载不成功。
  2. npm 代理的服务有问题,你代理的这个服务根本没有这个依赖。

解决方法:

  • 如果是原因1造成的,直接删除 package-lock.json 重新安装依赖即可。只不过 package-lock.json 也会随着你最新的 npm 服务代理而更新。
  • 如果是原因2,npm 代理的服务有问题,那可以尝试切换服务代理到 package-lock.json 记录的之前的服务(可以查看依赖中的 revolved 字段 查看)。如果不能切换代理(像我只能用公司内网指定的 npm 镜像代理)只能叫人把 npm 服务问题处理下或则等它自己好了。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐