首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
React Router 生产构建后如何用 @react-router/serve 启动服务并配置 HOST 与 PORT?
📅 2026/9/10 10:55:19
✍️ 爱科研究院
👁 阅读 3,247
React Router 生产构建后如何用 react-router/serve 启动服务并配置 HOST 与 PORT【免费下载链接】react-routerDeclarative routing for React项目地址: https://gitcode.com/GitHub_Trending/re/react-router完成react-router build之后你需要一个 Node.js 服务器来托管构建产物。React Router 官方提供了react-router/serve包可执行命令为react-router-serve它是一个基于 Express 的、开箱即用的生产服务器默认挂载了compression、express.static含serve-static和morgan中间件不需要你手写服务器代码。本文介绍如何在生产构建后用react-router-serve启动应用并通过HOST、PORT环境变量控制监听地址和端口。前提条件一个 Framework mode 的 React Router 项目例如通过npx create-react-routerlatest生成的模板或按 Quick Start 手动搭建的项目项目根目录已安装依赖。生产运行需要以下运行时依赖Quick Start 给出的完整安装命令为npm i react-router react-router/node react-router/serve isbot react react-dom npm i -D react-router/dev vite其中react-router/serve是本文要用的生产服务器包react-router/dev提供react-router build命令应放在devDependencies不要部署到服务器。第一步执行生产构建在项目根目录运行npx react-router build该命令通过 Vite 构建生产产物构建时会将process.env.NODE_ENV设为production并对输出做压缩。构建完成后会生成build目录其中包含server/服务端版本的构建产物server build即一个可以在 Node.js 服务器里运行的模块client/浏览器端静态资源。构建输出位置由 react-router.config.ts 控制buildDirectory默认buildserverBuildFile默认index.js因此默认的服务端入口文件是build/server/index.js。如果你改过这两个配置项后一步要传入的实际路径会相应变化。第二步用 react-router-serve 启动服务react-router-serve接受一个参数server build 的路径serverBuildPath。命令文档见 react-router/servereact-router-serve server-build-path # 例如 react-router-serve build/server/index.js默认配置下使用 Quick Start 中的写法即可npx react-router-serve build/server/index.js启动后服务默认运行在 3000 端口。可以在浏览器打开http://localhost:3000验证——Quick Start 中的预期结果是看到 hello world 页面以你项目实际渲染的内容为准。react-router-serve的 CLI 源码 中监听成功时会向控制台打印形如[react-router-serve] http://localhost:3000的地址日志可作为服务已启动的判断依据。第三步用 HOST 环境变量配置监听主机名HOST的值会传递给 Express 内部app.listen方法用于指定服务绑定的主机名/地址HOST127.0.0.1 npx react-router-serve build/server/index.js不设置HOST时服务监听所有可用地址此时启动日志会额外打印本机局域网 IP 对应的地址如[react-router-serve] http://localhost:3000 (http://192.168.x.x:3000)设置HOST后服务只绑定你指定的地址。第四步用 PORT 环境变量修改端口端口同样通过环境变量指定PORT4000 npx react-router-serve build/index.js未设置PORT时react-router-serve会优先尝试 3000 端口若 3000 不可用被占用或无权限它会自动改用一个可用端口。HOST与PORT可以组合使用HOST127.0.0.1 PORT4000 npx react-router-serve build/server/index.js模板项目通常把这个启动方式写进package.json的start脚本仓库中的 playground 项目即为start: react-router-serve ./build/server/index.js验证与注意事项验证方式看启动日志react-router-serve监听成功后打印[react-router-serve] http://localhost:port文档示例中端口为 3000。浏览器或 HTTP 客户端访问该地址确认返回你应用的页面。需要注意的边界生产/开发模式由NODE_ENV决定。根据process.env.NODE_ENV服务器以开发模式或生产模式启动。在开发模式下react-router/serve会为每个请求清空require缓存以确保运行最新代码这会导致模块作用域的值如模块级缓存在每个请求间被重置生产模式下服务器启动一次即固定不会发生该行为。如果服务器代码依赖模块级缓存文档建议改用自定义react-router/express服务器配合pm2-dev或nodemon之类的热重载工具。server-build-path必须指向真实的构建产物。生产环境只部署构建产物build/、public/build/react-router.config.ts本身不保证在生产环境可用所以必须通过命令行参数显式告诉 React Router server build 在哪里。react-router/serve不提供任何定制选项。这是有意为之如果需要定制底层 Express 服务器比如加中间件、改请求处理逻辑文档给出的路径是迁移到react-router/expressadapter 完全自建服务器参见 adapter 文档中的 Migrating from the React Router App Server 章节。对于不需要定制的场景react-router-serveHOST/PORT就足够覆盖启动需求。build/server目录本身只是一个模块也可以不经过react-router-serve直接放进 Express 等任意服务器中运行Quick Start 的 Bring Your Own Server 一节有完整示例。但就构建后直接启动生产服务这个任务而言react-router-serve加上HOST、PORT两个环境变量就是文档给出的最短路径。【免费下载链接】react-routerDeclarative routing for React项目地址: https://gitcode.com/GitHub_Trending/re/react-router创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/9/10 10:50:16
稀疏landmark与稠密landmark下EKF SLAM性能对比实验,预测更新同时进行与非同时进行对比EKF SLAM性能对比实验EKF SLAM在有色噪声下性能
2026/9/10 10:50:16
如何免费让老Mac重获新生:OpenCore Legacy Patcher 完整升级指南
2026/9/10 10:50:16
如何使用PHP Telegram Bot Api构建响应式聊天机器人?5个核心功能详解
2026/9/10 11:30:22
将 SRS 直播流嵌入 WordPress:SRS Player 插件完整实战指南
2026/9/10 11:30:22
一人企业方法论完整指南:普通人如何做出带来被动收入的副业
2026/9/10 11:30:22
深入解析 k6 内置 JavaScript 引擎 sobek 的 parser 包:从源码到 AST 的完整指南
2026/9/10 11:30:22
PostHog 生产数据库只读分析:通过 Metabase 查询 ClickHouse query_log 与 Postgres 应用库
2026/9/10 11:30:22
claude-howto 实战:Claude Code Checkpoints 与 Rewind 完全指南——会话快照、安全回退与分支探索
2026/9/10 11:25:22
Calibre 电子书格式转换快速指南:第一本书 30 秒,整库一次搞定
2026/9/10 0:04:20
AI搜索的信任缺口:企业内容如何在答案时代自证可信
2026/9/10 0:04:20
Spring Boot+Vue+Node.js售后服务系统开发实战
2026/9/10 0:04:20
SpringBoot+Vue民宿预订管理系统开发实践:从架构设计到部署上线
2026/9/10 2:30:52
超人会飞不算本事:系统稳定依赖清晰规则与边界设计
2026/9/10 5:51:31
超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论
2026/9/10 8:32:02
基于CNN的调制信号识别:MATLAB实现时频图分类实战