起因
在研究pdfjs这个库,看怎样利用它再封装一个在相对可控的UI组件。然后这个库最新版本需要node的16版本以上。
好家伙!我试试安装16版本,又遇到问题了!npm安装依赖都跑不起,后来发现是nvm-windows的问题。^1
更新nvm-windows的版本至1.1.11后,又遇到新问题,node版本切换时没有生效,就像下面这个样子:
1 | $ nvm current |
解决办法
我的情况是这样的,node当前版本为16,使用版本14失效。
1 | $ nvm current |
后来发现重新安装nvm-windows v1.1.11后,存在着两个符号链接。
1 | $ where node |
查看文件属性后发现,C:\nodejs\
的符号链接指向的是16的版本,而C:\Program Files\nodejs\
的符号链接指向的是14的版本。
后来我把C:\nodejs\node.exe
这个删除后,环境中的node版本就能正常显示了。
1 | $ nvm current |
正如 @tsauvajon 所说,最近新版本使用了C:\Program Files\nodejs\
的符号链接,旧版本的符号链接并没有清除而导致node版本不能正常切换。
后续
我反馈问题过了两天,nvm-windows的作者coreybutler 给了令我满意的回应。他想回应的是这不是一个bug,这只是升级安装的姿势不对。他建议如果要升级,还是使用升级工具,而不是删除旧版本再重新安装,这就能避免出现和我同类的情况。
写在最后,确实我自己对这个工具认识不够,非常感谢 coreybutler 的回复。