一、背景
由于办公的mac电脑的某些权限限制,所以没有安装nvm,在切换node版本的时候,需要通过切换PATH指向的包路径去切换版本。
但是这样每次要进zshrc文件去手动注释掉不需要版本的path,来启用其他版本,并且需要重启控制台很麻烦。QAQ
二、alias设置指令别名
如果控制台是bash的请配置在~/.bashrc里面;zsh控制台配置在~/.zshrc
后来发现可以开启一个默认的node PATH配置,然后再对其他版本使用alias对指令进行别名设置,然后直接调用该别名来切换版本。
例如:
bash
alias n16="export PATH=$PATH:/Users/xxxx/Programs/node/node-v16.18.0-darwin-arm64/bin"
export PATH=$PATH:/Users/xxxx/Programs/node/node-v18.18.2-darwin-arm64/bin
**但是!**这样设置完,调用n16你会发现仍然没有切换过去,还在node 18默认版本中
⚠️这是因为 $PATH中存储着多个路径的拼接 ,当调用n16时,由于" $PATH:/ "拼接在了前面,所以会优先匹配到node18的路径就++停止了++。
🌟正确做法
bash
alias n16="export PATH=/Users/xxxx/Programs/node/node-v16.18.0-darwin-arm64/bin:$PATH"
export PATH=$PATH:/Users/xxxx/Programs/node/node-v18.18.2-darwin-arm64/bin
强制将node16路径拼接在前面,把 $Path 拼接在路径最后
注意,由于控制台可以视为一个应用程序,所以每次打开会++重新执行zshrc++切回到默认的node18版本~