使用 nvm 管理项目 node.js 版本
后知后觉 暂无评论

在 macOS 上使用 nvm 快速部署 node.js 开发环境,不依赖 brew,方便卸载。

所有安装的环境都只存在用户的根目录下,不会污染系统文件夹,也避免了使用官方构建的安装包导致的难以彻底卸载的问题。

安装

简单一行命令即可进行安装(最新版本请参考官方仓库):

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash

等待安装完毕,执行命令检查版本:

command -v nvm
nvm --version
# 返回类似
# 0.40.4

安装会在环境变量中写入一段新配置:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

重新打开终端即可生效。

使用

执行命令即可查看所有支持的 Node 版本:

nvm list

选择其中的版本进行安装:

## 如果不显性指定,则会安装目前支持的最新子版本
nvm install 24
## 应用
nvm use 24
## 配置默认版本
nvm alias default 24

卸载

卸载也是非常简单,执行内置命令即可卸载:

nvm uninstall <版本号>

安装程序默认只会使用以下目录:

ls ~/.nvm/

可以选择手动删除文件和环境变量配置即可。

项目使用

在单独项目中使用时,可以简化步骤,使用 .nvmrc 文件(创建并写入版本号比如18)来实现项目级别的依赖隔离,然后在环境变量(.zshrc.bashrc)中写入以下部分保存:

# place this after nvm initialization!
autoload -U add-zsh-hook

load-nvmrc() {
  local nvmrc_path
  nvmrc_path="$(nvm_find_nvmrc)"

  if [ -n "$nvmrc_path" ]; then
    local nvmrc_node_version
    nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")

    if [ "$nvmrc_node_version" = "N/A" ]; then
      nvm install
    elif [ "$nvmrc_node_version" != "$(nvm version)" ]; then
      nvm use
    fi
  elif [ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ] && [ "$(nvm version)" != "$(nvm version default)" ]; then
    echo "Reverting to nvm default version"
    nvm use default
  fi
}

add-zsh-hook chpwd load-nvmrc
load-nvmrc

即可实现自动切换 node 版本。


附录

参考链接

如果遇到问题或者对文章内容存疑,请在下方留言,博主看到后将及时回复,谢谢!
回复 / 查看「历史评论
回答24+22=