nuxt3项目服务端bulid后在本地浏览的3种方式(nuxi preview、Node.js Server、PM2)

news2024/12/30 2:17:18

你也许会问有了开发调试本地浏览,为什么还要服务端构建之后在本地浏览?

举个简单例子

在 Nuxt 3 服务端打包中,由于运行环境不同,无法直接访问 process 对象。服务端打包通常是在 Node.js 环境中进行的,而 process 对象是 Node.js 中的全局对象,但在浏览器端不可用。

package.json代码片段 

 "scripts": {
    "build": "nuxt build", # 构建
    "dev": "nuxt dev --host",
    "generate": "nuxt generate",
    "preview": "nuxt preview", # 构建后预览
    "postinstall": "nuxt prepare"
  },

nuxi preview 方式

项目构建(build)完成后,在终端执行 npm run preview

注意:如果你开启了pm2或本地开发调试(npm run dev)打开了记得关闭它们,因为它们可能占用3000端口。

当然你也可以调整端口号做区分,这样就不会与其他进程产生冲突了。

执行npm run preview命令后出现下图的结果,这时候你就可以在浏览器打开 http://localhost:3000/ 进行浏览了 🎉

Node.js Server

正如图1所示,构建工具会告诉你,你打包后的启动资源放在了一个叫 .output/server文件夹里

构建目录如下图所示

在vscode新建终端,输入  node .\.output\server\index.mjs  

..

 这时候你就可以在浏览器打开 http://localhost:3000/ 进行浏览了 🎉

PM2

创建执行文件

在项目根目录创建 ecosystem.config.cjs 文件

module.exports = {
  apps: [
    {
      name: 'MyNuxtWeb', # 应用名称
      port: '3000', # 端口号
      exec_mode: 'cluster', # 设置为cluster让 PM2 知道您想要在每个实例之间进行负载平衡
      instances: '1', # 1 意味着 PM2 可用 CPU 的数量
      script: './.output/server/index.mjs' # 命令名称
    }
  ]
}

安装pm2 

全局安装pm2管理工具

$ npm install pm2@latest -g
# or
$ yarn global add pm2

启动pm2管理工具,并查看日志

在项目根目录,终端执行 

# 选项 --attach :启动并查看日志

$ pm2 start ecosystem.config.cjs --attach

# 通过 Ctrl-C 退出时,应用程序仍将在后台运行。

(执行结果 )

 这时候你就可以在浏览器打开 http://localhost:3000/ 进行浏览了 🎉

重启

如果日志报错导致项目无法运行,可以重启

# 重新启动应用程序:

$ pm2 restart MyNuxtWeb

# 重新启动所有应用程序:

$ pm2 restart all

# 重新启动多个应用程序:

$ pm2 restart MyNuxtWeb MyNuxtWeb2 MyNuxtWeb3

(重启效果)

(日志输出)

停止

# 停止指定的应用程序
$ pm2 stop MyNuxtWeb
$ pm2 stop [process_id]

# 停止所有
$ pm2 stop all

# 停止多个应用程序:
$ pm2 stop MyNuxtWeb1 MyNuxtWeb2 MyNuxtWeb3

(根据进程id进行停止操作)

删除

如果你刚开始不小心给instances设置成max,你可能需要删除一些。😂

# 删除应用程序

$ pm2 delete MyNuxtWeb

# 删除全部

$ pm2 delete all

(删除进程)

如果你同时打开了日志视图,可以发现日志进程也被终结了。

将PM2连接到pm2.io运行

Server连接方式

(输入pm2.io提供的公钥和密钥)

(pm2.io视图界面)

AWS连接方式

在package.json添加以下代码

"scripts": {
  "prod:start": "pm2-runtime ecosystem.config.cjs"
}

在.env添加一下代码

# pm2.io 公钥
PM2_PUBLIC_KEY= pm2.io公钥

# pm2.io  密钥
PM2_SECRET_KEY= pm2.io密钥

 

在终端执行 npm run prod:start

如果你提前开好窗口进行对比,你会发现

启动 prod:start 命令前

启动prod:start命令后

以上就是nuxt3项目构建后在本地浏览的3种方式。

pm2.io功能非常强大,有兴趣的可以到官方了解详情。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1634801.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(详细整理!!!!)Tensorflow与Keras、Python版本对应关系!!!

小伙伴们大家好,不知道大家有没有被tensorflow框架困扰过 今天我就给大家整理一下tensorflow和keras、python版本的对应关系 大家这些都可以在官网找到,下面我把官网的连接给大家放在这里:在 Windows 环境中从源代码构建 | TensorFlow (g…

鸿蒙内核源码分析(用栈方式篇) | 程序运行场地谁提供的

精读内核源码就绕不过汇编语言,鸿蒙内核有6个汇编文件,读不懂它们就真的很难理解以下问题. 1.系统调用是如何实现的? 2.CPU是如何切换任务和进程上下文的? 3.硬件中断是如何处理的? 4.main函数到底是怎么来的? 5.开机最开始发生了什么? 6.关机…

缓解程序员工作压力:保持高效创新的方法与经验分享

文章目录 每日一句正能量前言工作与休息的平衡心理健康与自我关怀社交与网络建设后记 每日一句正能量 不要抱怨你的伴侣丑,不要抱怨你没有一个好爸爸,不要抱怨你的工作差,不要抱怨没人赏识你。现实有太多的不如意,就算生活 给你的…

Android CalendarView助你打造精美的Android日历应用

Android CalendarView助你打造精美的Android日历应用 1. 引言 移动应用中的日历功能对于用户来说至关重要,它不仅是时间管理的工具,还能帮助用户记录重要事件和安排活动。因此,一个高效、易用的日历控件对于移动应用的成功至关重要。 传统…

【校园管理】智慧校园综合管理平台规划

传统的校园内各应用系统数据标准不一、平台相互独立,从而形成“信息孤岛”。造成校园的信息系统利用率低、操作繁琐、管理维护困难等。智慧校园综合管理平台的建设就是为了打破“信息孤岛”,实现校园内资源的有效配置和高效利用,提高教学、科…

rtl8188ftv debian linux 多架构移植方法

5 块包邮,挂到 x86_64 debian 12 虚拟机,实测下载能到 22Mbps,也可能就2Mbps,上传能到 40Mbps 关键词: rtl8xxxu、rtl8xxxu.ko、rtl8xxxu_8188f.c、mac80211.h、cfg80211.ko、sudo modinfo rtl8xxxu.ko | grep depen…

vue2/vue3 分别自动暴露 API 接口

思路 遍历当前目录下的所有文件;根据遍历结果循环导出文件名与模块名;将文件名作为前缀,模块名作为实际运用函数或变量;将数据整合,放到新的对象中并导出; vue2 的写法 vue3 的写法 使用 this.loading …

学生管理系统[Python语言]

各位大佬好 ,这里是阿川的博客 , 祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 学生管理系统是计算机专业最基础的一个作业&#…

计算机毕业设计python在线交友系统django+vue

Flask 是一个轻量级的 Web 框架,使用 Python 语言编写,较其他同类型框架更为灵活、轻便且容易上手,小型团队在短时间内就可以完成功能丰富的中小型网站或 Web 服务的实现。 本在线交友系统管理员功能有个人中心,用户管理&#xff…

北京金融大数据有限公司X百望云签署战略合作协议 共同发布“金数数据要素流通云平台”

随着数据资产与数据要素相关政策密集出台,资本与实业企业均跃跃欲试。但因为没有龙头企业的方案引领和成熟的落地实践,市场呈谨慎观望态势,热度无处安放。 北京金融大数据有限公司(以下简称“金融大数据公司”)作为市…

ERROR: [7df2405] missing Change-Id in commit message footer

git push origin HEAD:refs/for/[分支名] 使用“git push origin HEAD:refs/for/[分支名]”,报错信息见下图 报错信息:ERROR: [7df2405] missing Change-Id in commit message footer 解决办法 根据git的提示依次执行下面的语句即可 第一步&#xf…

车载气象站:可移动监测的气象站

TH-CZ5车载气象站是一种专门针对车辆、船舶等应急环境检测设备而设计的可移动监测的气象站。 一、系统介绍 车载气象站系统采用先进的高精度GPS及三轴电子罗盘,可实现车行驶时的风速、风向检测。整机为野外型设计,同时还可对气温、相对湿度、雨量、气压…

Nginx部署静态网页,网页嵌套PSE搜索

静态网页实现 1.目的2.PSE设置3.Docker部署nginx4.静态网页仿写参考文件 1.目的 组内有些探索性小需求,发现与OncoSearch功能类似,便尝试自己复现一下该网页,也为后面其他工作打个基础。感谢作者的无私分享,才让我有机会复现出结果…

windows ubuntu sed,awk,grep篇,8,Awk 语法和基础命令

目录 51.Awk 命令语法 52.Awk 程序结构(BEGIN,body,END)区域 53.打印命令 54.模式匹配 Awk 是一个维护和处理文本数据文件的强大语言。在文本数据有一定的格式,即每行数据包 含多个以分界符分隔的字段时,显得尤其有用。即便是输入文件没有一定的格式&a…

有什么好用的足球数据分析工具,可以生成可靠的投注策略?

在寻找好用的足球数据分析工具以生成可靠的投注策略时,有几个值得考虑的选项。以下是一些工具和建议: 乐彩数据分析:这款工具以其精准的预测和高达70%以上的准确率而受到赞誉。它利用大数据算法进行预测,相比个人预测更加准确。此…

集成框架 -- OSS

前言 接入oss必须有这两个文档基础 使用STS临时访问凭证访问OSS_对象存储(OSS)-阿里云帮助中心 前端上传跨域 正文 sts前后端通用,开通图示 AliyunSTSAssumeRoleAccess 后端实现代码 public static void main(String[] args) {String regionId "cn-ha…

邦注科技即热式节能模温机 模温机的工作原理

模温机是一种用于控制模具温度的设备,主要用于塑料注塑、压铸、橡胶成型等工艺中。 其工作原理主要包括以下几个步骤: 加热阶段: 当模具需要加热时,双温模温机会启动加热系统,将热传导油或热传导水加热至设定温度。加…

使用MATLAB/Simulink的PID控制系统设计和自动调整

书籍:Pid Control System Design and Automatic Tuning Using Matlab/Simulink 作者:Liuping Wang 出版:Wiley-IEEE Press 书籍下载-《使用MATLAB/Simulink的PID控制系统设计和自动调整》本书涵盖了具有操作约束的PID控制系统的设计、实施…

[Collection与数据结构] 七大排序算法汇总

1.概述 1.1 概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排…

合泰杯(HT32F52352)RTC的应用(计时)--->掉电不丢失VBAT(代码已经实现附带源码)

摘要 在HT32F52352合泰单片机开发中,rtc在网上还是挺少人应用的,找了很久没什么资料,现在我根据手册和官方的代码进行配置理解。 RTC在嵌入式单片机中是一个很重要的应用资源。 记录事件时间戳:RTC可以记录事件发生的精确时间&…