【问题标题】:pm2: command not found after npm -gpm2:在 npm -g 之后找不到命令
【发布时间】:2020-08-14 18:35:47
【问题描述】:

我已经使用以下命令安装了 pm2

npm install pm2@latest -g

这工作正常,我现在正在运行使用 pm2 的生产服务。

我退出了 shell ( AWS ),现在如果我尝试 pm2 list 我得到错误:-

pm2: command not found

我认为问题可能是我应该运行了sudo npm install pm2@latest -g

从以前的 stackoverflow 答案中,我可以看到这是建议的方法,但我的问题是......

如果我现在运行sudo npm install pm2@latest -g,这会影响我当前运行的 pm2 服务吗?

谢谢

【问题讨论】:

    标签: amazon-web-services pm2


    【解决方案1】:

    我相信问题是你没有将 npm 全局目录添加到你的销售路径

    查看本指南: https://github.com/sindresorhus/guides/blob/master/npm-global-without-sudo.md

    TLDR: 你想要做的是通过执行来获取你的 npm 前缀目录 npm config get prefix

    那么你的 pm2 在<YOUR_NPM_PREFIX>/bin/pm2

    要将你的 npm 全局用户目录添加到你的 shell PATH,你可以把这个逗号 export PATH="$PATH:<YOUR_NPM_PREFIX>/bin"

    在您的 .bashrc 中,如果您使用 bash,请不要忘记重新登录您的 shell 或 source ~/.bashrc

    【讨论】:

    • 您好,感谢您的回答。我做了npm config get prefix,它给了我/home/ec2-user/.nvm/versions/node/v13.12.0,然后我导出了PATH="$PATH:/home/ec2-user/.nvm/versions/node/v13.12.0/bin"。退出并重新连接 ssh,但仍然有 pm2: command not found' ?? If I look in /home/ec2-user/.nvm/versions/node/v13.12.0/bin` 我只有 npm / npx 的节点和别名?
    • 嗨,你让我朝着正确的方向前进!出于某种原因,我需要添加的 $PATH 是/home/ec2-user/.nvm/versions/node/v12.16.1/lib/node_modules/pm2/bin,我发现这个位置是find . -name pm2\*。现在我遇到的问题是我每次退出 ssh 时都丢失了这个添加的 $PATH,但是通过将导出命令添加到 ~/.bashrc 来解决这个问题
    • 我相信是因为你在安装pm2后更改了node版本,如果你想在更改node版本时保留全局包,请尝试:github.com/nvm-sh/…
    • 是的,我确实在 pm2 安装后更改了节点版本,所以我猜这意味着如果您使用 nvm 更改节点版本,所有全局包都会“消失”。我也看到了你链接的解决方法,没关系,但我无法合理化 nvm 觉得有必要默认修改 npm global!
    • IDK 也可以,但我可以推测,可能是因为语言本身正在发展,新的包可能无法在旧节点版本中运行,也许这就是原因
    猜你喜欢
    • 1970-01-01
    • 2013-10-13
    • 2021-04-11
    • 2020-09-30
    • 1970-01-01
    • 2021-12-07
    • 2015-12-09
    • 2016-11-06
    • 1970-01-01
    相关资源
    最近更新 更多