概述
前端 node 的版本迭代太快了,经常会遇到存量工程跑不起来的情况。需要切换 node 版本,包版本管理工具,用过 n,用过 nvm,但是都会遇到一些问题:
n是一个npm包,说白了,就是node自己管自己,一但 当前node出问题,就切不过去了,另外,经常需要用到sudo权限nvm最近一个比较严重的问题是,nvm与prefix不兼容,还有就是慢
最近翻看 node 官方文档,突然看到 「通过包管理器安装 Node.js」一章有个不认识的东西很靠前:
就好奇去看了下。
fnm
fnm 是使用 rust 写的,现在前端看到 rust,第一反应基本都是 快,我去看了下,还真是,至于怎么使用,主页都有说明,照着操作就好了。下面我说下几个踩了的小坑。
踩坑
node 命令不存在
zsh: command not found: node
fnm use 不生效
上面这两个原因就是,官方的两个命令 fnm use <version> 和 fnm default <version> 的区别跟常规的认知不一样:
use是切换当前shell环境,临时的default是切换全局,永久的
明白了这个,就能解决问题了。
简单说,不要用 use,用 default。
设置别名失败
fnm alias v10.15.0 10xfnm default 10x会报错,它会把10x识别成正常的版本,而不是别名
所以,设置别名的时候,不要用数字开头,也不要用 v 开头,比如上面的 10x 可以设置为 x10,或者自己想要的其他名字
总结
fnm 在使用上还是挺丝滑的,install 也是极快的,如果喜欢折腾拥抱新事物,那就用起来吧!