解决npm安装错误:No matching version found for event-stream@3.3.6

记录一下使用npm 的踩坑问题

1. 问题描述

当刚clone一个项目,使用npm install安装项目依赖包的时候,报错:

npm ERR! code ETARGET
npm ERR! notarget No matching version found for event-stream@3.3.6
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
npm ERR! notarget 
npm ERR! notarget It was specified as a dependency of 'project-name'
npm ERR! notarget 

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/dragon/.npm/_logs/2018-12-19T11_45_03_469Z-debug.log

2. 解决方法

从错误信息:No matching version found for event-stream@3.3.6可以知道,是由于没有找到这个包的3.3.6版本。
首先去 https://www.npmjs.com/ 网站搜索这个包,看看是否发布了这个版本:

  1. 打开这个包:https://www.npmjs.com/package...
  2. 点击Versions查看这个包的所有历史版本。

clipboard.png

经查看,这个版本确实不存在

2.1 解决方法一

如果在npm官网找到了这个版本,那么:
需要把npm的源切换成npm自己的源在尝试,即可正确安装。

2.2 解决方法二

如果这个特定版本的包在npm官网没有找到,说明确实没有。
此时需要找到哪个包依赖了这个包。
看错误信息中有一条信息:It was specified as a dependency of 'project-name', 说明这个特定版本的包是project-name所依赖的。

那么直接单独安装这个包即可解决问题。
由于project-name是我项目的名字,所以是这个项目下的某一个包依赖了这个特定的包。
如果错误信息里面没有更多的信息,那么只能去npm的log文件里面去查看:
/Users/dragon/.npm/_logs/2018-12-19T11_45_03_469Z-debug.log
在错误日志文件里面搜索event-stream@3.3.6后,找到了一段依赖信息:

9828 silly saveTree ├─┬ gulp-resource@1.0.39
9828 silly saveTree │ ├── amd-deploy@1.0.29
9828 silly saveTree │ └─┬ event-stream@3.3.6
9828 silly saveTree │   ├── flatmap-stream@0.1.1

clipboard.png
发现gulp-resource@1.0.39依赖了event-stream@3.3.6.
在package.json文件里面确实发现了这个包gulp-resource

现在手动安装这个包:
npm i gulp-resource@1.0.39

~ npm i gulp-resource@1.0.39

> node lib/install.js

optipng pre-build test passed successfully
+ gulp-resource@1.0.39
added 1012 packages from 500 contributors in 18.393s

正确安装后,在重新npm install 就能正确安装所有包了。

问题解决。

clipboard.png

                                            </article>

原文:https://segmentfault.com/a/1190000017469402

原文地址:https://www.cnblogs.com/showcase/p/13600163.html