macOS中切换Node的版本

题记

今天在通过 yarn 安装veturpack的依赖项时,node-sass这一块一直不成功。从控制台看报错信息,大概为 environment 不支持,并给了一个node-sass Supported Environments的 github 地址,可以看到在OSX系统中,对 Node 的版本支持最高直到 v8.x.x。而我的 Node 版本为 v11.x.x,所以我需要一个降级。

Nodejs 的版本切换方式有很多种,NVM就是其中杰出的代表,不过今天我们的主角不是他,而是另一位,强大的Homebrew,因为是用的

Homebrew 是一款自由及开放源代码的软件包管理系统,用以简化 macOS 系统上的软件安装过程,最初由马克斯·霍威尔(Max Howell)写成。因其可扩展性得到了一致好评,而在 Ruby on Rails 社区广为人知。

过程

  • 查看本地 cellar 安装的有哪些版本,以及远程有哪些版本

    • brew list | grep node查看本地 cellar 中的所有 Node 版本;

    • brew search node | grep node查看远程有哪些版本。

  • 现在我需要一个不超过 8.x.x 版本的 Node,执行brew install node@8,安装一个 v8.x.x 版本的 Node

  • 切换 Node 版本可通过 unlink 先将当前版本的 Node 移除,再通过 link 相应版本的方式来实现

    • brew unlink node将当前版本的 Node 移除掉
    • brew link --overwrite node@8,这个时候可能会输出提醒要把可执行文件配置到系统PATH中,笔者自己使用的是zsh,执行提示信息中的echo 'export PATH="/usr/local/opt/node@8/bin:$PATH"' >> ~/.zshrc命令,会在~/.zshrc文件中写入export PATH="/usr/local/opt/node@8/bin:$PATH",最后需要source ~/.zshrc使修改立即生效
  • 检查当前Node版本node -v,输出的是v8.15.0,完美。yarn-sass也成功安装,veturpack 运行成功。

最新更新

上面的方式已经弃用,brew中node版本满足不了项目开发需要,已切换到nvm。