使用npm安装sharp失败,提示‘node: command not found’如何解决?
解决npm install sharp时提示"sh: node: command not found"的问题
问题根源
npm执行安装脚本时启动的子shell环境变量PATH中,没有包含nvm管理的node可执行文件路径,导致找不到node命令。虽然你手动进入sh环境能正常运行node,但npm的子shell属于非交互式环境,默认没有加载nvm的初始化配置。
解决方法
方法1:临时指定PATH执行安装
先通过which node获取你的node绝对路径,比如输出为/root/.nvm/versions/node/v16.18.1/bin/node,对应的bin目录就是/root/.nvm/versions/node/v16.18.1/bin。
直接在命令中把该路径加入PATH后执行安装:
PATH=$PATH:/root/.nvm/versions/node/v16.18.1/bin npm install sharp
方法2:让非交互式shell加载nvm配置
编辑shell配置文件(sh环境编辑~/.profile,bash环境编辑~/.bashrc),添加nvm初始化代码:
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
保存后重新加载配置:
source ~/.profile
之后再运行npm install sharp即可。
方法3:使用npm内置参数自动添加node路径
直接执行带--scripts-prepend-node-path=true参数的安装命令,该参数会让npm在执行脚本时自动将node路径加入子shell的PATH:
npm install sharp --scripts-prepend-node-path=true
验证方法
可以通过以下命令对比当前shell和npm子shell的PATH差异,确认问题是否解决:
# 查看当前shell的PATH echo $PATH # 查看npm子shell的PATH npm run env | grep PATH
内容的提问来源于stack exchange,提问作者Andrew Naem
相关产品推荐
相关产品推荐

