繁体   English   中英

BitBucket 管道显示 npm: command not found

[英]BitBucket pipeline shows npm: command not found

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

./server-run.sh:第 1 行:npm:未找到命令 ./server-run.sh:第 2 行:pm2:未找到命令

以下是我的 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

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

在执行 pm2 之前尝试

npm i -g pm2

或者你可以给

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

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

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

然后它就像一个魅力。

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"

这肯定会解决您的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM