11、Nuxt3服务端渲染编译、打包及线上部署

3,263 阅读2分钟

本章节我们来了解一下我们的项目如何去打包以及线上发布、服务器配置等

一、我们要知道我们的命令。如下:

"scripts": {
  "build": "nuxt build",  //线上发布
  "dev": "nuxt dev", //开发版 
  "generate": "nuxt generate" //打包成静态资源
},

二、我们在线上发布的时候,需要运行的命令是 npm run build

当我们运行的命令是 npm run build完成后,会为我们生成 .nuxt文件

注意:我们文件根目录的assets 静态文件在线上打包后,会发现找不到静态资源的问题。审查元素发现是文件路径引入错误。我们来看一下官方提供的项目结构:包含asset 和 public两个目录

33.jpg

因此,为了解决这一问题,我们需要对静态资源做进一步处理。在根目录下创建 public文件夹,将静态资源图片整体迁移到public文件夹,其实public文件夹就类似我们Nuxt2中的 static文件夹。 然后配置我们的public

-| public/
---| images/    ————————图片存放过地址
 
---| favicon.ico  ———————— .ico 图片

三、服务端需安装node.js,全局安装pm2

//安装pm2
npm install pm2 -g

//pm2介绍

pm2 start app.js              # 启动app.js应用程序
pm2 start app.js -i 4         # cluster mode 模式启动4个app.js的应用实例
                              # 4个应用程序会自动进行负载均衡
pm2 start app.js --name="api" # 启动应用程序并命名为 "api"
pm2 start app.js --watch      # 当文件变化时自动重启应用
pm2 start script.sh           # 启动 bash 脚本
pm2 list                      # 列表 PM2 启动的所有的应用程序
pm2 monit                     # 显示每个应用程序的CPU和内存占用情况
pm2 show [app-name]           # 显示应用程序的所有信息
pm2 logs                      # 显示所有应用程序的日志
pm2 logs [app-name]           # 显示指定应用程序的日志
pm2 flush                     # 清空所有日志文件
pm2 stop all                  # 停止所有的应用程序
pm2 stop 0                    # 停止 id为 0的指定应用程序
pm2 restart all               # 重启所有应用
pm2 reload all                # 重启 cluster mode下的所有应用
pm2 gracefulReload all        # Graceful reload all apps in cluster mode
pm2 delete all                # 关闭并删除所有应用
pm2 delete 0                  # 删除指定应用 id 0
 
pm2 scale api 10              # 把名字叫api的应用扩展到10个实例
pm2 reset [app-name]          # 重置重启数量
pm2 startup                   # 创建开机自启动命令
pm2 save                      # 保存当前应用列表
pm2 resurrect                 # 重新加载保存的应用列表
pm2 update                    # Save processes, kill PM2 and restore processes
pm2 generate                  # Generate a sample json configuration file

四、上传我们的打包项目。例如

-| 打包后所需文件/
> ---| .nuxt
> 
> ---| plblic
> 
> ---| nuxt.config.ts
>  
> ---| package.json 
>  
> ---| package-lock.json 

五、安装线上依赖。如:

//运行 
npm install
or
yarn install

六、启动 pm2 和运行项目。例如:

<!---
 *   佛曰:
 *        写字楼里写字间,写字间里程序员;
 *        程序人员写程序,又拿程序换酒钱。
 *        酒醒只在网上坐,酒醉还来网下眠;
 *        酒醉酒醒日复日,网上网下年复年。
 *        但愿老死电脑间,不愿鞠躬老板前;
 *        奔驰宝马贵者趣,公交自行程序员。
 *        别人笑我忒疯癫,我笑自己命太贱;
 *        不见满街漂亮妹,哪个归得程序员?
 *
 * @Description: 项目发布
 * @version:1.2.0
 * @Date: 2022-09-13 23:42:51
 * @Author: wenBin
 --->
 
pm2 start app.js

pm2 start app.js --name="api"