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

2024-02-14

我已经按照描述安装了nodejshere https://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-managed-hosting-accounts.

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

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

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

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

当我自己调用脚本时,一切正常。问题仅出在 bitbucket 管道上。我不知道为什么会发生这种情况:(。


Running which composer透露至少composer没有从您的命令中获取命令assumed位置,即~/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在最后。例如,以下是不正确 way:

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

正确的做法是这样的:

export PATH=$PATH:/home/handmast/bin
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐