npm踩坑之install报错code-ETARGET

要开发一个物联网的微信小程序,clone demo到本地,然后执行npm install安装依赖包的时候出错,报错code ETARGET 出错的包是iotexplorer-ui-dev-config@^1.7.6.

因为不小心把cmd窗口关掉了,所以没有截到命令行窗口的图片

开始查到说是报错原因是package-lock.json的问题,进行了如下步骤

1.删除了node_modules

2.清除npm缓存

1
npm cache clean --force //危险命令,谨慎执行

3.执行npm install 重装。再次报错ETARGET

最后的解决方案:

并不是package-lock.json的问题,而是出错的包iotexplorer-ui-dev-config@^1.7.6.

尝试一:单独安装这个包

npm install iotexplorer-ui-dev-config@^1.7.6

不行,报同样的错

查看模块的注册信息,然后安装tgz包

1
2
npm view iotexplorer-ui-dev-config
npm install https://registry.npmjs.org/xxx.tgz

也不行。。。

尝试二:思考是否有这个包

https://www/npmjs.com/搜索这个包,看看是否发布了^1.7.6版本

没有发布。

尝试三:出错包的依赖包 有没有发布

错误提示中看到It was specified as a dependency of 依赖包

在cmd的debug.log中(仔细看cmd的报错提示,有文件路径),查看这个依赖包的版本号

查官网,发现已经发布。

下载这个依赖包,但是还是报错了。。。。

按理来说有这个版本,下载安装应该是正常的

切换了一下镜像,从淘宝源切到npm源(命令太长了,推荐nrm切换,使用方法文尾)

npm config set registry=http://registry.npmjs.org

切换之后,使用npm源安装依赖包

现在npm install就正常了


nrm 使用

可以使用nrm进行管理registry

npm i nrm -g

安装后之后使用nrm ls就可以看到所有的源,以及当前所使用的源

使用nrm use 源名进行切换源