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/ 网站搜索这个包,看看是否发布了这个版本:
- 打开这个包:https://www.npmjs.com/package...
- 点击Versions查看这个包的所有历史版本。
经查看,这个版本确实不存在
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
发现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
就能正确安装所有包了。
问题解决。