在共享主机上使用 bitbucket 管道进行 ssh 时找不到 npm 命令
npm command is not found when ssh with bitbucket pipelines on shared hosting
我已经按照 here 所述安装了 nodejs。
当我自己通过 ssh 连接到服务器时,一切正常。但是我创建了一个脚本来部署我的应用程序并通过 bitbucket 管道调用它。除 npm install
外,其他一切正常(composer install
、php 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
我已经按照 here 所述安装了 nodejs。
当我自己通过 ssh 连接到服务器时,一切正常。但是我创建了一个脚本来部署我的应用程序并通过 bitbucket 管道调用它。除 npm install
外,其他一切正常(composer install
、php 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