小程序上线过程中,pm2安装成功了,但是运行pm2命令只打印一句话
root@iZm5e3iekfi2krh6udbikaZ:~/.pm2# pm2 -v [PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
查看pm2日志,里面报错
root@iZm5e3iekfi2krh6udbikaZ:~/.pm2# vim pm2.log
报错内容
SyntaxError: Unexpected token ... at createScript (vm.js:74:10) at Object.runInThisContext (vm.js:116:10) at Module._compile (module.js:533:28) at Object.Module._extensions..js (module.js:580:10) at Module.load (module.js:503:32) at tryModuleLoad (module.js:466:12) at Function.Module._load (module.js:458:3) at Module.require (module.js:513:17) at require (internal/module.js:11:18) at Object.<anonymous> (/root/node-v8.2.1-linux-x64/lib/node_modules/pm2/node_modules/picomatch/index.js:3:18)
出现报错的原因主要是nodejs版本太低了
我们来更新nodejs的版本
1、安装新版本的node、npm,我选择的是v10.13.0
我们云服务器是Ubuntu系统,通过apt-get安装即可
//下载nodejs安装文件node-v10.13.0-linux-x64.tar.xz ~$ wget https://npm.taobao.org/mirrors/node/v10.13.0/node-v10.13.0-linux-x64.tar.xz //解压下载的文件 ~$ tar -xvf node-v10.13.0-linux-x64.tar.xz //测试是否安装成功 ~$ cd node-v10.13.0-linux-x64/bin && ls node npm npx //符号./的意思是当前文件夹下,现在 node 和 npm 还不能全局使用 ~/node-v10.13.0-linux-x64/bin$ ./node -v v10.13.0
2、查看当前目录
输入pwd查看当前目录,记住这个目录,我们下面要用
~/node-v10.13.0-linux-x64/bin$ pwd //查到的目录如下 /root/node-v10.13.0-linux-x64/bin
3、全局使用node、npm
现在npm、node只能在我们刚刚安装的node-v10.13.0-linux-x64/bin文件夹下面使用,我们在Ubuntu中设置环境变量,从而可以全局使用node、npm
//回到~目录 ~/node-v10.13.0-linux-x64/bin$ cd ~ //打开.bashrc文件夹 ~$ vim .bashrc
4、编辑.bashrc文件
vim是一个文本编辑器,输入i,进入编辑状态,添加下面语句
其中/root/node-v10.13.0-linux-x64/bin/是【(2)查看当前目录】中查出来的目录,替换成你自己查到的目录
export PATH=/root/node-v10.13.0-linux-x64/bin/:$PATH
编辑完成后,按esc键退出编辑状态,再输入:wq保存并退出文件
5、使环境变量生效
~$ source .bashrc
6、检查是否可以全局使用node、npm
~$ node -v v10.13.0 ~$ npm -v 6.4.1
7、更新完node之后,检查pm2是否可以正常使用
root@iZm5e3iekfi2krh6udbikaZ:~# pm2 -v [PM2] Spawning PM2 daemon with pm2_home=/root/.pm2 [PM2] PM2 Successfully daemonized 4.1.2
现在可以了,打印出了Successfully的信息