CentOS 安装 pm2 运行出错

一、起因

在CentOS中使用yum install npm安装npm后,再安装pm2时,运行pm2 -v出错

[root@zngw ~]# pm2 -v
/usr/lib/node_modules/pm2/node_modules/chalk/source/index.js:103
    ...styles,
    ^^^

SyntaxError: Unexpected token ...
    at createScript (vm.js:56:10)
    at Object.runInThisContext (vm.js:97:10)
    at Module._compile (module.js:549:28)
    at Object.Module._extensions..js (module.js:586:10)
    at Module.load (module.js:494:32)
    at tryModuleLoad (module.js:453:12)
    at Function.Module._load (module.js:445:3)
    at Module.require (module.js:504:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/lib/node_modules/pm2/constants.js:10:14)

二、分析

这是因为npm版本过低导致的,用的是阿里云的更新源,这个版本中的npm版本是3.10.10,node版本是v6.17.1。node版本更新到v10及以上版本就可以了。

三、解决办法

1、卸载npm

npm uninstall npm -g

2、安装gcc

yum install gcc gcc-c++

3、下载node安装包

mkdir -p /home/npm
cd /home/npm
wget https://npm.taobao.org/mirrors/node/v10.14.1/node-v10.14.1-linux-x64.tar.gz

4、解压

tar -xvf  node-v10.14.1-linux-x64.tar.gz
mv node-v10.14.1-linux-x64 node

5、添加环境变量

vi /etc/profile

# 在最后添加
export NODE_HOME=/home/npm/node  
export PATH=$NODE_HOME/bin:$PATH

/home/npm/node 为前面node解压的目录

6、刷新

source /etc/profile

查看

[root@zngw ~]# node -v
v10.14.1
[root@zngw ~]# npm -v
6.4.1

7、安装pm2

npm install -g pm2

8、测试

[root@zngw ~]# pm2 -v
5.1.1
0%