Github Actions 和 npm - npm:找不到命令

问题描述 投票:0回答:3

我已经在 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 的权限吗?

node.js ubuntu npm github-actions nvm
3个回答
3
投票

我也遇到了同样的问题,终于找到了解决方案。 我可以通过在运行

npm
命令之前添加以下行来解决该问题。

export NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh

这些命令帮助终端修复由nvm

安装的节点路径。
参考链接是
这里


0
投票
我没有找到nvm问题的解决方案,通过不同的方式安装npm解决了这个问题。


0
投票
@iconique 提供的答案是正确的。我只需稍微调整一下它即可指向

.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
    
© www.soinside.com 2019 - 2024. All rights reserved.