在zsh中的npm postinstall中出现"sh: node: command not found"错误。
在zsh中的npm postinstall中出现"sh: node: command not found"错误。
我使用zsh
作为默认的命令行shell。我已经使用nvm
安装了node
。\n当我尝试安装GatsbyJS时出现错误:\n
npm i -g gatsby-cli .... npm ERR! code 127 npm ERR! path /Users/username/~/.nvm/versions/node/v16.0.0/lib/node_modules/gatsby-cli npm ERR! command failed npm ERR! command sh -c node scripts/postinstall.js npm ERR! sh: node: command not found
\n看起来gatsby-cli试图在sh
shell中使用node
运行postinstall.js
脚本,但是那里没有可用的node,因为我的nvm/node在.zshrc
中声明。\n我能够通过创建一个.profile
文件在sh
中运行nvm和node,如下所示:\n
export NVM_DIR="~/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm source ~/.nvm/nvm.sh export PATH=/usr/local/bin:$PATH
\n但是我需要为每个sh
会话运行source ~/.profile
,否则它不起作用。由于post-install生成了一个新的sh
会话,我无法强制它使用.profile
。\n我对所有这些shell相关的内容不是很擅长,所以需要帮助。