惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
人人都是产品经理
人人都是产品经理
M
MIT News - Artificial intelligence
C
Cybersecurity and Infrastructure Security Agency CISA
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
爱范儿
爱范儿
Spread Privacy
Spread Privacy
P
Palo Alto Networks Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
T
The Blog of Author Tim Ferriss
The Cloudflare Blog
WordPress大学
WordPress大学
小众软件
小众软件
H
Help Net Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Blog — PlanetScale
Blog — PlanetScale
V2EX - 技术
V2EX - 技术
H
Hacker News: Front Page
Last Week in AI
Last Week in AI
D
DataBreaches.Net
V
V2EX
S
Securelist
C
CXSECURITY Database RSS Feed - CXSecurity.com
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tenable Blog
Cloudbric
Cloudbric
月光博客
月光博客
Y
Y Combinator Blog
博客园 - 三生石上(FineUI控件)
N
News and Events Feed by Topic
K
Kaspersky official blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
S
Secure Thoughts
S
Security Affairs
W
WeLiveSecurity
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
The Last Watchdog
The Last Watchdog
AI
AI
有赞技术团队
有赞技术团队
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 【当耐特】
罗磊的独立博客
Google DeepMind News
Google DeepMind News
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
N
Netflix TechBlog - Medium
PCI Perspectives
PCI Perspectives
SecWiki News
SecWiki News
IT之家
IT之家
Microsoft Azure Blog
Microsoft Azure Blog
V
Visual Studio Blog

博客园 - 海乐学习

Java Maven 开发的常用命令 C语言开发的常用命令 三汇Linux配置Config说明 Java实现优雅的关闭程序并执行清理流程的写法 C语言开发中优雅的关闭程序并执行清理流程的写法 将C语言开发的程序做成 麒麟系统的服务(Systemd 标准服务,Linux 通用) 实现开机自启动 ZeroMQ的DEALER双帧结构(路由空帧 + 业务帧)(支持异步收发、主动推送事件)C写服务端 java写客户端 ZeroMQ中ZMQ_DEALER单帧数据(支持异步收发、主动推送事件)C写服务端 java写客户端 win10系统中 关闭专注助手 执行 xx.sh 脚本文件时出现: /bin/bash^M:解释器错误: 没有那个文件或目录 运行编译打包好的 xxx.jar 中没有主清单属性 出现这个错误 将Java编译的 .jar文件做成 麒麟系统的服务(Systemd 标准服务,Linux 通用) 实现开机自启动 将Java编译的 .jar文件做成windows服务 实现开机自启动 方法二 RabbitMQ在麒麟系统中离线安装说明 VMware启动虚似机后出现 无法获取快照信息: 锁定文件失败 模块“Snapshot”启动失败。未能启动虚拟机。 C语言在Linux中开发完整Demo包含读配置文件写日志和定时器Timer C语言在Linux中开发读取配置文件app.conf 麒麟V10 Server系统中搭建C语言开发环境 麒麟ServerV10 修改IP4地址 麒麟ServerV10 配置IP4 当系统中有两个版本的Maven时,用IDEA创建Maven有时会出错 麒麟ServerV10安装 espeak-ng 和 ffmpeg 方法 C语言在Linux中开发没有界面纯后台运行的Demo程序(含日志和Timer) C语言在Linux中开发使用定时器Timer在界面上显示时间 C语言在Linux中开发带界面的程序(含每小时日志) C语言在Linux中开发第一个项目Hello Word 在apache-maven项目中使用log4写日志 在apache-maven项目中解决中文乱码问题 在apache-maven项目中读取配置文件 创建apache-maven项目 远程桌面连接时出现身份验证错误 要求的函数不受支持 这可能是由于CredSSP加密数据库修正 win10系统查看电脑从锁屏状态回到使用状态 apache-maven的常用命令 C语言在 Linux 中的常用命令 apache-maven安装配置 麒麟CentOS下安装ZeroMQ开发包 Window上用VS Code + Remote-SSH组件的方式来实现开发编译Linux上的C++程序 win10弹出 无法使用内置管理员账户打开 Microsoft Edge。请使用其他账户登录 在麒麟系统上安装Qwen3-TTS文字转语音 在麒麟系统上安装MaryTTS文字转语音 FTP上传Linux/Unix文件系统权限的修改方法 麒麟系统Kylin Linux Advanced Server 中安装 python3.10 将exe做成windows服务 java实现ftp上传 java实现TTS文字转语音wav (Jacob + SAPI)
node.js和Next.js 编译部署说明
海乐学习 · 2025-12-22 · via 博客园 - 海乐学习

Next.js 部署选项

对于 Next.js 应用,有几种不同的部署方式:

1. 传统 SSR 部署(当前配置)
- 需要部署完整项目(包括源代码和 .next 构建目录)
- 需要在服务器上运行 Node.js 环境
- 使用 npm run start 启动
- 支持服务端功能(如数据库 API、动态路由等)

2. 静态导出部署(如果启用的话)
- 如果启用静态导出,可以只部署静态文件(HTML、CSS、JS)
- 不需要 Node.js 环境
- 可以托管在任何静态服务器上(如 Nginx、Apache、GitHub Pages 等)

当前项目的状况

从 next.config.js 文件可以看到,静态导出配置已被注释掉:

1 // 移除静态导出配置以支持数据库API
2 // output: 'export', // This enables static export
3 // trailingSlash: true, // This ensures URLs end with a slash

这表明项目需要服务端功能(可能是数据库操作),所以不能简单地作为静态网站部署。

node.js 和 next.js编译部署的步骤

1. 将完整的项目文件部署到服务器
2. 在服务器上安装 Node.js 和 npm
3. 运行 npm install 安装依赖
4. 执行 npm run build 构建项目
5. 最后用 npm run start 启动应用

这样做的原因是项目包含了服务端功能(如数据库 API),这些功能需要 Node.js 环境才能运行。

如果您的目标是简化部署,可以考虑重新启用静态导出,但这会限制您使用服务端功能(如数据库操作、API 路由等)。

源代码部署的必要性
1. 服务端渲染(SSR)架构:这个项目移除了静态导出配置,启用了数据库 API
功能,所以它不是一个纯静态网站,而是需要服务端处理的动态应用。

2. Node.js 运行时需求:项目使用了数据库 API(从 next.config.js 注释可知),这些服务端功能需要 Node.js
环境运行。

3. 完整的部署包:部署时需要包含:
- package.json(定义启动脚本和依赖)
- .next/ 构建目录
- 所有源代码(特别是 API 路由)
- 在服务器上运行 npm install 安装依赖

4. 运行方式:最终通过 npm run start 启动,这需要完整的项目文件在服务器上运行。

所以,由于这是一个具有服务端功能的 Next.js
应用(而非纯静态网站),源代码确实需要部署到服务器上,并且需要在服务器上运行 Node.js 环境。

保护源码的方法

如果您担心源码安全,可以考虑:
- 使用专用的构建服务器进行构建,然后只部署构建产物
- 使用 Docker 容器化部署
所以是的,基于当前的架构设计,源代码需要部署到服务器上,因为这是一个服务端渲染的应用,需要 Node.js
运行时环境来处理服务端逻辑。