【问题标题】:BitBucket pipeline shows npm: command not foundBitBucket 管道显示 npm: command not found
【发布时间】:2021-02-17 19:57:23
【问题描述】:

使用 bit bucket scp 管道将代码部署到我的服务器后,我正在使用另一个管道运行脚本来安装节点模块并启动节点服务器,但管道结果为失败状态并显示如下

./server-run.sh:第 1 行:npm:找不到命令 ./server-run.sh: line 2: pm2: command not found

以下是我的 yml 文件

image: node:10.15.3

pipelines:
  custom:
    test:
    - step:
        caches:
          - node
        script: # Modify the commands below to build your repository.
            - pipe: atlassian/scp-deploy:0.3.3
              variables:
                USER: $USER
                SERVER: $SERVER
                REMOTE_PATH: '/var/www/stockTest/server'
                LOCAL_PATH: 'server/*'
    server-start:
    - step:
        caches:
          - node
        script:
          - ssh $USER@$SERVER "cd /var/www/stockTest/server && ./server-run.sh"
            

服务器运行.sh

npm i
pm2 start server-start.js --name stockTest

【问题讨论】:

    标签: javascript node.js npm ssh bitbucket-pipelines


    【解决方案1】:

    因为没有安装pm2,所以必须先安装pm2。

    尝试在执行pm2之前

    npm i -g pm2

    或者你可以给

    npx pm2 start server-start.js --name stockTest

    【讨论】:

    • 我的服务器中已经有 pm2、npm 和 node.js 并且可以手动运行
    【解决方案2】:

    我遇到了完全相同的问题。 所以我对我的文件有这些命令:

    whoami
    which npm
    

    哪个输出:

    LifecycleEvent - ApplicationStart
    Script - cicd/development/scripts/start_server.sh
    [stdout]ec2-user
    [stderr]which: no npm in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
    

    所以它找不到npm,但不是因为它不是正确的用户,所以我做了一个:

    $ which npm
    ~/.nvm/versions/node/v15.12.0/bin/npm
    

    然后我明白这是由于安装了 npm。
    所以我只是下载了二进制文件并把它放在/usr/local/lib/nodejs

    然后它就像一个魅力。

    【讨论】:

      【解决方案3】:

      1> 在您的服务器终端运行 echo $PATH

      这将在下面给出 /home/ubuntu/.nvm/versions/node/v16.5.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin :/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

      2> 现在打开 nano /etc/environment 并粘贴路径,如下所示

       PATH="/home/ubuntu/.nvm/versions/node/v16.5.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
      

      这肯定会解决你的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-28
        • 2018-07-18
        • 2020-01-28
        • 1970-01-01
        • 2011-02-12
        • 1970-01-01
        • 2019-07-07
        • 2016-10-29
        相关资源
        最近更新 更多