nuxt3项目部署502,build 和 generate的区别,preview命令

每日鸡汤:每个你想要学习的瞬间都是未来的你向自己求救

非服务端渲染的项目,比如普通的vite + vue项目,我们在部署生产环境的时候,只需要两步

  1.  运行 npm run build  然后得到了一个 dist 文件夹
  2. 将这个 dist 文件夹部署到一个静态服务器上

一般来说这样就可以访问这个项目了

但是服务端渲染的项目有所不同,因为会需要在服务端运行一些代码,所以一个普通的静态服务器满足不了我们需求,我们需要在服务器端运行自己的服务端代码,所以 nuxt 项目是使用 npm run preview 这个命令运行打包出来的文件。

在部署过程中还有一个问题刚开始不懂 ,就是 build【ssr】 和generate 【ssg】命令有啥不同!来看一下官网文档的描述

注意 ssr 和 ssg 的区别,请参考这篇文章

The build command creates a .output directory with all your application, server and dependencies ready for production.

build命令创建了一个.output目录,其中包含所有可用于生产的应用程序、服务器和依赖项。

使用 npm run build 打包出来的文件如下

build 命令会生成一个server、一个public 的文件夹,build完之后运行npm run preview 你会发现在控制台不会打印log,此时preveiw 的本质是运行了 这句命令 ,官方文档

node .output/server/index.mjs

The generate command pre-renders every route of your application and stores the result in plain HTML files that you can deploy on any static hosting services. The command triggers the nuxi build command with the prerender argument set to true

generate 命令预呈现应用程序的每个路由,并将结果存储在可以部署在任何静态托管服务上的纯 HTML 文件中。该命令触发nuxi build命令,prerender 参数设置为true

使用 npm run generate 打包出来的文件如下

generate 命令只会生成一个public文件夹,generate 完之后运行npm run preview 你会发现在控制台每次刷新页面就会打印出来很多日志,此时preview命令本质是运行了这句命令

npx serve .output/public    

在实际部署过程中,运行 preview 命令打印 log, 会很占用资源,而且会导致服务重启,出现502的情况,所以如果你的资源不够用还是建议使用 build + preview 的方式部署

nuxt2 项目使用 npm run  generate + npm run  start 就不会有这些日志打印

nuxt3 官方文档只写了 preview 命令,没写 start, 但是其实 start 也可以用,他俩本质是一样的。至于运行起来后的现象,取决于使用了 build 还是 generate

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值