pm2自动部署的时候报错 提示npm/pm2 command not found post-deploy hook failed Deploy failed 1

原文链接 https://www.cnblogs.com/yalong/p/13935503.html

这个提示是找不到npm 跟pm2 命令, 但是我们在服务器上使用 npm -v     pm2 -v  是可以查看到版本好的, 也就是安装好的

这个时候提示  command not found  是因为在自动部署的时候 使用的全局下的npm  pm2 命令,在全局环境下 找不到这两个命令, 自然就报错了

为了验证, 可以执行  sudo npm -v    sudo pm2 -v   也会提示 command not found

为了解决这个问题需要让npm  pm2 建立软连接,相当于放在环境变量中

首先查看 npm 的安装位置

可以使用  whereis npm  查看npm 的安装路径, 如果  whereis npm   显示路径为空,

则使用  which npm  比如 这里显示的路径是  /usr/local/src/node-v10.16.3-linux-x64/bin/npm  

然后执行

sudo ln -s  /usr/local/src/node-v10.16.3-linux-x64/bin/npm  /usr/bin/npm

这就相当于把npm 链接到了 全局环境变量中

这时候在执行  sudo npm -v   就不报错了

pm2, node, 甚至其他命令  只要是提示 command not found  的 都可以按照上面的方式解决

比如pm2 建立软连接:

sudo ln -s  /usr/local/src/node-v10.16.3-linux-x64/bin/pm2  /usr/bin/pm2