我已经按照here的说明安装了nodejs。
我自己SSH到服务器时,一切正常。但是我创建了一个脚本,用于部署我的应用程序并通过bitbucket管道调用它。除composer install
外,其他所有东西都可以正常工作(php artisan migrate
,npm install
等)。错误消息是
./ deploy:第26行:npm:找不到命令
在bitbucket-pipelines.yml中,我这样称呼我的脚本:
- step:
script:
- ssh user@ip_address ./deploy
当我自己调用脚本时,一切正常。问题仅在于位桶流水线。我不知道为什么会这样:(。
答案 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