要开发一个物联网的微信小程序,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 | npm view iotexplorer-ui-dev-config |
也不行。。。
尝试二:思考是否有这个包
去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 源名
进行切换源