【问题标题】:"sh: node: command not found error" in npm postinstall in zshzsh 中的 npm postinstall 中的“sh: node: command not found 错误”
【发布时间】:2021-07-19 08:01:42
【问题描述】:

我使用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 试图在 node 中运行 postinstall.js 脚本 sh shell,但它在那里不可用,因为我的 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,否则它不起作用。由于安装后会生成一个新的sh 会话,因此我无法强制它使用.profile

我不擅长所有这些 shell 的东西,所以任何帮助表示赞赏。

(注意:我在安装其他 npm 包时没有这样的问题,例如 webpack-cli)

【问题讨论】:

  • 您应该考虑向 repo 提交错误报告
  • 我会给 StackOverflow 高手一个机会。如果没有我的错误,我将在 github 上创建一个问题。但是 Gatsby 是一个非常受欢迎的软件包,没有人抱怨,所以这很可能是我的错

标签: npm sh gatsby zsh nvm


【解决方案1】:

问题出在 nvm 安装中。

修复步骤:

  1. 编辑.zshrc,如answer 中所述
  2. 通过 nvm 重新安装节点

【讨论】:

    猜你喜欢
    • 2020-01-28
    • 2020-09-26
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    相关资源
    最近更新 更多