【发布时间】: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 是一个非常受欢迎的软件包,没有人抱怨,所以这很可能是我的错