npm 命令未找到 pm2:命令未找到

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

Ubuntu19.04下安装NVM节点但本地pm2部署生产更新会报pm2: command not find等错误

在远程服务器上

  root@vultr:/usr/bin# git --version
  git version 2.20.1
  root@vultr:/usr/bin# nvm --version
  0.34.0
  root@vultr:/usr/bin# node -v
  v10.15.3
  root@vultr:/usr/bin# npm -v
  6.4.1

在本地服务器上

  pm2 deploy production update
--> Deploying to production environment
--> on host 202.182.98.13
  ○ deploying origin/master
  ○ executing pre-deploy-local
  ○ hook pre-deploy
  ○ fast forward master
Already on 'master'
Your branch is up to date with 'origin/master'.
From github.com:zq0904/pm2
Updating d79b633..2fe1d22
Fast-forward
 README.md           | 3 ++-
 ecosystem.config.js | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)
 * branch            master     -> FETCH_HEAD
   d79b633..2fe1d22  master     -> origin/master
  ○ executing post-deploy `git pull && npm install && pm2 reload ecosystem.config.js --env production`
Already up to date.
npm WARN [email protected] No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

up to date in 3.997s
pm2: command not found

  post-deploy hook failed

Deploy failed
1

我可以在远程服务器上完成

whereis npm
  lh -s /root/.nvm/versions/node/v10.15.3/bin/node /usr/bin/node
  lh -s /root/.nvm/versions/node/v10.15.3/bin/npm /usr/bin/npm
  lh -s /root/.nvm/versions/node/v10.15.3/bin/pm2 /usr/bin/pm2

这样就解决问题了, 但我不明白为什么, 服务器已经可以输出npm节点pm2等版本, 但为什么一定要设置软连接呢? 有什么好的办法解决这个麻烦的问题吗? 非常感谢!

pm2 nvm
3个回答
5
投票

我不确定这个问题的根本原因是什么。但是,当我在 AWS EC2 ubuntu 实例中创建一个新用户并尝试通过该新用户使用 pm2 部署我的 NodeJS 应用程序时,这种情况就发生在我身上。

我关注了这个github线程并且这个特定的评论解决了我的问题。只需在服务器的
.bashrc
文件中注释以下行即可

#If not running interactively, don 't do anything case $ - in * i * );; *) return;; esac


1
投票
PM2不使用交互式shell,所以你必须注释掉里面的以下内容

.bashrc


# ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) # for examples # >>> COMMENT OPUT THE FOLLOWING LINES >>> # If not running interactively, don't do anything # case $- in # *i*) ;; # *) return;; # esac
    

0
投票
你必须全局安装pm2

如果您安装了 ubuntu 系统,请尝试以下操作:-

sudo npm i -g pm2

然后从您的文件开始

pm2启动生态系统.config.js

© www.soinside.com 2019 - 2024. All rights reserved.