"sh: node: command not found error" 在 zsh 中的 npm postinstall
"sh: node: command not found error" in npm postinstall in zsh
我使用 zsh
作为默认命令行 shell。我已经使用 nvm
.
安装了 node
当我尝试安装 GatsbyJS 时出现错误
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
似乎 gatsby-cli 试图在 sh
shell 中使用 node
运行 postinstall.js
脚本,但它在那里不可用,因为我的nvm/node 在 .zshrc
中声明。
我能够 运行 通过创建一个 .profile
文件在 sh
中 运行 nvm 和节点:
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
但我需要为每个 sh
会话 运行 source ~/.profile
,否则,它不起作用。由于 post-install 生成一个新的 sh
会话,我不能强制它使用 .profile
.
我在所有这些 shell 方面都不是很擅长,因此感谢您的帮助。
(注意:我在安装其他 npm 包时没有这样的问题,例如 webpack-cli)
问题出在 nvm 安装上。
修复步骤:
- 按照answer
中所述编辑.zshrc
- 通过 nvm 重新安装节点
我使用 zsh
作为默认命令行 shell。我已经使用 nvm
.
node
当我尝试安装 GatsbyJS 时出现错误
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
似乎 gatsby-cli 试图在 sh
shell 中使用 node
运行 postinstall.js
脚本,但它在那里不可用,因为我的nvm/node 在 .zshrc
中声明。
我能够 运行 通过创建一个 .profile
文件在 sh
中 运行 nvm 和节点:
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
但我需要为每个 sh
会话 运行 source ~/.profile
,否则,它不起作用。由于 post-install 生成一个新的 sh
会话,我不能强制它使用 .profile
.
我在所有这些 shell 方面都不是很擅长,因此感谢您的帮助。
(注意:我在安装其他 npm 包时没有这样的问题,例如 webpack-cli)
问题出在 nvm 安装上。
修复步骤:
- 按照answer 中所述编辑
- 通过 nvm 重新安装节点
.zshrc