gpt4 book ai didi

node.js - 使用 NVM( Node 版本管理器)bash : line 5: npm: command not found 安装时,Laravel Envoy 在 Ubuntu 上无法检测 Node/npm

转载 作者:行者123 更新时间:2023-12-04 13:38:05 27 4
gpt4 key购买 nike

我已经在 Ubuntu 18.04 上安装了带有 NVM 的 node/npm。我可以通过 ssh 进入服务器并运行 node -v (v13.9.0) 和 npm -v (v13.9.0),因此它们已安装并且可由用户执行。

当我尝试通过 Laravel Envoy 部署工具执行此操作时,出现以下错误:
bash: line 5: npm: command not found
我的 Envoy 脚本非常简单,如下所示:

@servers(['main' => ['deploy@**.***.**.**']])

@task('deploy', ['on' => 'main'])
composer -V
npm -v
@endtask

因此,由于某种原因,当 Envoy 登录到服务器时,它无法访问 node/npm。系统上安装的其他所有内容(例如 php 和 composer)都可以正常工作。

有什么原因 Envoy 看不到 NVM Node/npm 安装吗? Envoy 没有使用我的部署用户登录吗?

当我检查它指向哪个 npm 时:
/home/deploy/.nvm/versions/node/v13.9.0/bin/npm
我试过直接在我的 ssh shell 中调用它并得到正确的结果,npm 按预期运行。

然后我尝试将其添加到我的 Envoy 脚本中,如下所示:
@task('deploy', ['on' => 'main'])
composer -V
/home/deploy/.nvm/versions/node/v13.9.0/bin/node -v
@endtask

但是它返回错误:
‘node’: No such file or directory
有趣的是,我可以像这样直接引用二进制文件来使用 Laravel Envoy 运行 Node /home/deploy/.nvm/versions/node/v13.9.0/bin/node -v

最佳答案

我在运行 nvm use 时遇到了类似的问题我遇到了同样的错误 command not found .似乎 nvm 没有从配置文件(例如 ~/.bashrc)中激活。我看着 nvm README并将源代码行复制到我的 Envoy 脚本中。

@task('deploy')
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
nvm use # Now works!
@endtask

关于node.js - 使用 NVM( Node 版本管理器)bash : line 5: npm: command not found 安装时,Laravel Envoy 在 Ubuntu 上无法检测 Node/npm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60633214/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com