在github actions 通过ssh 连接到服务器执行编译报错:error: npm: command not found

博客讲述了在使用GitHub Actions进行自动化部署时遇到npm命令找不到的问题,原因是服务器通过nvm安装的Node环境不在系统路径中。为解决此问题,博主在服务器上创建了指向nvm管理的npm和pm2的软链接,使得sudo能够找到对应的命令,成功完成了部署。
摘要由CSDN通过智能技术生成

服务器确认过安装npm,但是github actions报了这个找不到npm的指令,查资料发现 main.yml中

部署到服务器

  - name: Deploy
    uses: appleboy/ssh-action@master
    with:
      host: ${{ secrets.HOST }}
      username: ${{ secrets.USERNAME }}
      password: ${{ secrets.PASSWORD }}
      port: ${{ secrets.PORT }}
      script: |
        cd /var/www/node/nuxtdemo
        wget https://github.com/luopeihai/nuxt-actions-demo/releases/latest/download/release.tgz -O release.tgz
        tar zxvf release.tgz
        npm install --production
        pm2 reload pm2.config.json

uses: appleboy/ssh-action@master 执行script时候是

sudo cd /var/www/...... npm install --production

在回到服务器sudo输入

sudo npm install --production

发现仍然是, npm: command not found

npm: command not found 原因: 服务端node环境 我是通过nvm 而nvm并不会把node环境安装到 /usr/local/bin/目录下,使得sudo找不到对应指令,最终创建软连接 解决

sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/node" "/usr/local/bin/node"
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/npm" "/usr/local/bin/npm"
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/pm2” "/usr/local/bin/pm2”
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值