在共享主机上使用 bitbucket 管道进行 ssh 时找不到 npm 命令

npm command is not found when ssh with bitbucket pipelines on shared hosting

我已经按照 here 所述安装了 nodejs。

当我自己通过 ssh 连接到服务器时,一切正常。但是我创建了一个脚本来部署我的应用程序并通过 bitbucket 管道调用它。除 npm install 外,其他一切正常(composer installphp artisan migrate 等)。错误信息是

./deploy: line 26: npm: command not found

在 bitbucket-pipelines.yml 中,我这样调用我的脚本:

- step:
    script:
      - ssh user@ip_address ./deploy

当我自己调用脚本时一切正常。问题仅在于 bitbucket 管道。我不知道为什么会这样:(.

运行 which composer 显示至少 composer 命令没有从您的 假设的 位置获取,即 ~/composer 目录。相反,它是在 /opt/cpanel/composer/bin/composer.

中找到的

which npm 返回以下内容:

no npm in (/usr/local/cpanel/3rdparty/lib/path-bin:/usr/local/jdk/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin:/opt/bin:/opt/cpanel/composer/bin:/home/handmast/.local/bin:/home/handmast/bin)

现在,由于您可以手动 运行 命令 npm,您只需要计算 npm 所在的路径 运行ning 并确保路径是 显式 添加到用户的 ~/.bashrc 文件中,应该可以正常工作。您需要这样做,因为根据您的观察,ssh 无法找到它。

export PATH=$PATH:/path/to/npm/binary

注意:为避免混淆,请记住,在将路径添加到二进制文件时,只需将路径添加到 npm 所在的目录即可。不要在末尾添加 npm。例如,下面是不正确的方式:

export PATH=$PATH:/home/handmast/bin/npm

正确的方法是这样的:

export PATH=$PATH:/home/handmast/bin