Husky 无法获取 nvm 安装的 Node 环境的解决办法

今天在 AlmaLinux 上提交代码的时候遇到了一个问题:

.husky/pre-push: npm: command not found

但是在本地 bash 环境下使用 npm -v 是可以返回 npm 的版本号的,意味着 npm 确确实实存在。一阵思考过后,想起来为了方便版本管理,我的 Node 环境是使用 nvm 进行安装的,而 nvm 是动态注册的。Husky 运行时,其环境并没有注册 nvm,所以产生了此次报错。

如果直接将注册 nvm 的 nvm.sh 添加到 Husky 的 pre-commit 中,会影响在其它环境下进行开发的同事,于是,需要将配置添加到本机本用户的 Husky 配置文件内,即 ~/.config/husky/init.sh

# 使用 vi 编辑 Husky 配置文件
mkdir -p ~/.config/husky/ && vi ~/.config/husky/init.sh

# 将以下内容插入到该文件内
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

问题解决。

添加新评论