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"
问题解决。
你的文章让我感受到了生活的美好,谢谢!http://www.thdianzi.com