前言:
因为nuxt项目是运行在于服务器端的项目,所以就必须启动对应的服务才能访问到网站,就类似与我们本地开发的时候使用终端命令行执行npm run dev一样,使用过npm run dev的童鞋都知道如果在运行中的时候讲命令行工具关闭或者结束进程,咱们的网站就访问不了了,同样在服务器端也存在这种问题,比如服务器进程中断了,都会导致网站无法访问,所以这个时候咱们就需要使用pm2来做一个进程守护,具体添加pm2的流程及配置见下文:
一、使用pm2之前我们需要先进行安装pm2包,在我们本地开发也好,或者在服务器上操作都一样,打开终端命令行工具,输入以下命令:(Node环境下)
npm install -g pm2
安装好以后可以使用以下命令来查看pm2是否安装成功,能够返回版本号说明安装成功
pm2 -v
二、配置pm2,打开项目下的package.json文件,在scripts中添加代码,代码如下:
"name": "web-name",
"scripts": {
"dev": "nuxt",
"build": "nuxt build",
"start": "nuxt start",
"pm2": "nuxt build && pm2 start npm --name web-name -- run start"
},
这样就已经配置完了,然后将修改后的文件上传到服务器,在服务器端的命令行中直接输入:
npm run pm2
然后就可以访问网站了,但是默认的都是ip访问的,需要让运维的同事做一个域名指向到此ip地址上即可,就可以正常使用域名访问了。
只需要这一句话就行了,不需要按照官网上说的先需要nuxt build 和 nuxt start,为了减少操作,所以将build和start都整合在了pm2指令中,所以一句话就可以了
需要注意的:
"pm2": "nuxt build && pm2 start npm --name web-name -- run start"
这句话里面的web-name一定不能少,这个名字可以随意自定义,这个名字的作用就是在启动pm2的时候会以这个名字作为标识,以后如果想要停止的pm2的话,还需要使用这个名字来进行相应的操作
如果是第一次在服务端启动的话,需要先执行npm install一下,因为要安装项目需要的包,如果后续没有更新新的包的话,就不需要重复执行npm install了
以下为pm2的对应命令:
命令 | 作用 |
---|---|
npm install pm2 -g | 安装 |
pm2 update | 更新版本 |
pm2 list | 显示所有进程状态 |
pm2 monit | 监视所有进程 |
pm2 log | 显示所有进程日志 |
pm2 stop all | 停止所有进程 |
pm2 restart all | 重启所有进程 |
pm2 reload all | 0 秒停机重载进程 (用于 NETWORKED 进程) |
pm2 stop name | 停止指定的进程,name为标识 |
pm2 restart name | 重启指定的进程,name为标识 |
pm2 startup | 产生 init 脚本 保持进程活着 |
pm2 web | 运行健壮的 computer API endpoint (http://localhost:9615) |
pm2 delete name | 杀死指定的进程,name为标识 |
pm2 delete all | 杀死全部进程 |