nuxt+pm2部署,解决nuxt异常缓慢的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nuxt+pm2部署,解决nuxt异常缓慢的问题相关的知识,希望对你有一定的参考价值。

参考技术A

部署到线上后,发现nuxt 异常缓慢

一检查network,发现有10M+的js包?

没错,你部署失败了。

不妨本地尝试一下

这两个命令的差异,不难看出

那么,为什么本地没问题,pm2部署后就会进入模式1呢?
很简单

这两种模式可能都会进入模式1,主要是因为没有携带 start 参数,直接启动了nuxt
那么要怎么加上呢
在命令行中,可以增加

-- 后的内容会被原样传递给调用的js,这里调用了哪个js文件呢?
我们可以在 ecosystem.config.js 中找到
一般它的内容为:

script 即pm2调用的脚本,
所以,首先要将这里替换为 ./node_modules/nuxt/bin/nuxt.js ,
也可以替换为 npm run start
记得核对你package.json里的命令
这两种方式,第二种会导致pm2日志有误,所以推荐第一种。

除了 script ,解决加载慢的关键参数来了, start 要放在哪里呢
答案是, args

但是,重点来了,假设你用到了 环境区分 , script 和 args 放在上面是 无效的
必须放在下面
所以整个配置文件是这样的

启动命令是这样的

整个过程,官方文档并没有指引,所以还是比较坑的
如果这篇文章帮助了你,留个评论再走

pm2 部署 nuxt3.js 项目并设置服务器重启时项目自动重启

前言


众所周知,nuxt3.js是基于vue开发ssr,seo的项目比较好的框架,那么开发完成项目,如何部署nuxt项目也是比较重要的,接下来就记录一下我在开发中是如何部署的。

我之前写过一篇vue 和 ssr+nuxt.js 配置环境变量以及pm2进行服务部署,这两篇博客一定要结合起来看。。。

这篇文章只是对配置环境变量做了详细介绍,但是如何部署一带而过,是因为那个时候没怎么研究pm2,正好现在得空,研究成功并上线,本篇文章就详细介绍如何部署。

第一步:打包项目部署到服务器

npm run build:prod

将打包后的文件提交到服务器就好了
我们公司内都是采用jekins将项目自动化打包部署,代码提交后自动执行命令,就可以了。

第二步:服务器上安装pm2

切记一定要全局安装,这样的话服务器上任意开一个命令窗口都可以使用,我就是一开始没有全局安装,导致使用pm2时找不到命令

npm install pm2 -g 

第三步:启动服务

pm2 start ecosystem.config.js
//然后使用下边的命令看一下启动的服务列表
pm2 list  

如果服务是online说明启动成功,这时候再浏览器看一下自己项目,可以正常访问。

这里解释一个小疑惑:我在上一篇文章中写的启动命令是 pm2 start --env uat,但是在这片中文章中写的又是这个命令,其实这俩是一样的,因为我之前打包的时候已经区分了环境,所以这个时候直接启服务就好了

第四步:设置自动重启

这一步的意义就在于当服务器故障或者重启的时候,pm2服务能自动重启,就不需要每次服务器挂了还要人为敲命令去重启pm2服务。

pm2 startup 设置服务器重启后自动启动服务 linux 服务器可以直接执行 ,而windows服务器就需要安装下边的插件才可以

  • 1, 保存启动的服务列表状态
// 这一步是必不可少的
pm2 save
  • 2, 全局安装 pm2-windows-startup
cnpm install pm2-windows-startup -g
  • 3,设置 pm2-startup
pm2-startup install

以上步骤设置成功后,重启一下服务器,然后打开命令行,输入pm2 list看一下服务状态,
然后在看一下网站是否能正常访问,能正常访问就说明设置成功。

结束语

到此,pm2部署nuxt项目就成功了,接下来记一下常用到的pm2命令。

命令用途
pm2 list查看启动的服务列表
pm2 restart nuxtjsDemo重启名为nuxtjsDemo的服务
pm2 stop nuxtjsDemo终止名为nuxtjsDemo的服务
pm2 delete nuxtjsDemo删除名为nuxtjsDemo的服务
pm2 kill杀掉服务
pm2 logs nuxtjsDemo查看名为nuxtjsDemo的服务日志

以上是关于nuxt+pm2部署,解决nuxt异常缓慢的问题的主要内容,如果未能解决你的问题,请参考以下文章

nuxt.js 部署

pm2 部署 nuxt3.js 项目并设置服务器重启时项目自动重启

pm2 部署 nuxt3.js 项目并设置服务器重启时项目自动重启

vue 和 ssr+nuxt.js 配置环境变量以及pm2进行服务部署

vue 和 ssr+nuxt.js 配置环境变量以及pm2进行服务部署

nuxt项目打包部署