前些天换了电脑,从 iMac 27 Retina 2014 late 升级到 iMac 27 2019。关于前因后果,我写在张大妈,感兴趣的同学可以看下:《肉山的电子产品 篇九:机不如新,人不如故——iMac 27 换新记》。
换机器要搭环境。有两个选择:
- 整盘复制,利用 Time Machine 之类的工具
- 自己慢慢搭
考虑到老电脑已经工作了 5 年,经历了小十个系统版本,各种软件删装无数,里面的垃圾很多;再加上我的环境并不复杂,所以我决定自己慢慢搭。
然后遇到一个问题:npm install
会卡住,没有明显的提示信息,只有一段比较可疑:
The authenticity of host 'GitHub.com (1.1.1.1)' can't be established.
ECDSA key fingerprint is SHA256:abcdefg.
Are you sure you want to continue connecting (yes/no)?
因为项目中用到一些私有仓库的依赖,所以我怀疑是它们的问题。于是我把私有仓库从 package.json
里移除,再安装,成功。看来猜的没错。
然后我手动 git clone
一个项目到本地,clone 的过程中,会看到上面的提示,手动输入 yes
,记录目标机器的指纹,视它安全可靠。clone 完成。再把私有仓库依赖加回 package.json
,安装,成功。问题解决。
原因:使用 npm 安装 GitHub 仓库作为依赖,实际上等同于使用 git clone
将目标仓库 clone 到 node_modules
里。而 git 协议依托于 ssh 协议。在新机器上安装时,因为没有访问过目标机器,本地不信任目标机器,而 npm 又没有对这个异常做处理,所以就会卡住,不上不下。
欢迎吐槽,共同进步