一、起因
在CentOS中使用yum install npm
安装npm后,再安装pm2时,运行pm2 -v
出错
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
[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
- 01
npm uninstall npm -g
2、安装gcc
- 01
yum install gcc gcc-c++
3、下载node安装包
- 01
- 02
- 03
mkdir -p /home/npm
cd /home/npm
wget https://nodejs.org/dist/v10.14.1/node-v10.14.1-linux-x64.tar.xz
4、解压
- 01
- 02
tar -xvf node-v10.14.1-linux-x64.tar.xz
mv node-v10.14.1-linux-x64 node
5、添加环境变量
- 01
- 02
- 03
- 04
- 05
vi /etc/profile
# 在最后添加
export NODE_HOME=/home/npm/node
export PATH=$NODE_HOME/bin:$PATH
/home/npm/node
为前面node解压的目录
6、刷新
- 01
source /etc/profile
查看
- 01
- 02
- 03
- 04
[root@zngw ~]# node -v
v10.14.1
[root@zngw ~]# npm -v
6.4.1
7、安装pm2
- 01
npm install -g pm2
8、测试
- 01
- 02
[root@zngw ~]# pm2 -v
5.1.1