我已经在 github 操作上创建了一个部署操作。这一切都适用于composer install 和 git pull master 分支。然而,在我的数字海洋水滴上,我遇到了问题
bash: line 4: npm: command not found
如果我 ssh 进入我的服务器,我可以完美地使用 npm 。这是通过 nvm 安装的并使用最新版本,但由于某种原因无法通过操作访问。
我的部署脚本是
on:
push:
branches: [master]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Deploy Laravel APP
uses: appleboy/[email protected]
with:
host: ${{secrets.SSH_HOST}}
key: ${{secrets.SSH_KEY}}
username: ${{ secrets.SSH_USER }}
script: |
cd /var/www/admin
git pull origin master
composer install
npm install
npm run prod
我认为这更多地与 nvm 的设置有关,因为我可以通过 ssh 使用它,但由于他们使用相同的用户通过 ssh 登录,我似乎看不到问题。
有什么想法可以解决此问题以授予访问/允许 github 操作使用 npm 的权限吗?
我也遇到了同样的问题,终于找到了解决方案。 我可以通过在运行
npm
命令之前添加以下行来解决该问题。
export NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh
这些命令帮助终端修复由nvm
安装的节点路径。 参考链接是这里。
.nvm.sh
.nvm.sh
的确切位置,您需要运行
whereis pm2
就我而言,我更新了 .yml
文件,如下所示:
jobs:
build:
name: Build & Deploy
runs-on: ubuntu-latest
steps:
- name: Deploy to Production
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USERNAME }}
password: ${{ secrets.SSH_PASSWORD }}
port: ${{ secrets.SSH_PORT }}
script: |
export NVM_DIR=/home/${{ secrets.SSH_USERNAME }}/.nvm
source /home/${{ secrets.SSH_USERNAME }}/.nvm/nvm.sh
git stash
git pull origin main
npm i
npm run build