在共享主机上使用带位桶管道的SSH时找不到npm命令

时间:2019-08-25 06:09:19

标签: node.js ssh bitbucket bitbucket-pipelines

我已经按照here的说明安装了nodejs。

我自己SSH到服务器时,一切正常。但是我创建了一个脚本,用于部署我的应用程序并通过bitbucket管道调用它。除composer install外,其他所有东西都可以正常工作(php artisan migratenpm install等)。错误消息是

  

./ deploy:第26行:npm:找不到命令

在bitbucket-pipelines.yml中,我这样称呼我的脚本:

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

当我自己调用脚本时,一切正常。问题仅在于位桶流水线。我不知道为什么会这样:(。

1 个答案:

答案 0 :(得分:1)

运行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的运行路径,并确保该路径是明确的添加到用户的~/.bashrc文件中,一切正常。您需要执行此操作,因为根据您的观察,ssh无法找到它。

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

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

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

正确的方法是这样:

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