RedwoodJS v5 快速上手:从创建项目到 CRUD、Storybook、测试与部署的完整实战指南
后端前端Web框架开发工具【免费下载链接】redwoodRedwoodGraphQL项目地址https://gitcode.com/gh_mirrors/re/redwood点击查看免费下载RedwoodJS 是一个面向全栈应用的 React 框架它将前端React GraphQL、后端GraphQL API Prisma ORM与一套强大的 CLI 工具整合在一起让开发者可以从零开始快速构建数据驱动的应用。本文以 RedwoodJS v5 的官方 Quick Start 文档为核心带你走完从创建项目、配置数据库模型、生成 CRUD 脚手架到使用 Storybook 进行前端优先开发、用 Jest 覆盖测试、最终完成部署与认证配置的完整流程。读完本文你将掌握 RedwoodJS 的核心开发闭环一条命令创建项目、一条命令生成全栈 CRUD、一套 CLI 贯穿开发到部署。前置条件Node.js 与 Yarn在开始之前请确认你的开发环境满足 RedwoodJS v5 的要求Node.jsRedwoodJS 需要 Node.js18.x当前仓库主线模板的package.json中engines字段为node: 20.xtemplates/ts/package.json但 v5 文档对应的版本要求是 18.x请以你使用的 Redwood 版本要求为准Yarn版本1.15。如果你使用的是 Windows 系统为了获得最佳体验建议先阅读 Redwood 官方的 Windows 开发环境搭建指南。值得一提的是yarn create redwood-app在创建项目时会自动执行一次环境兼容性检查。从当前仓库源码看CLI 会读取模板package.json中的engines字段并调用check-node-version进行校验见 create-redwood-app.js如果 Node 版本过低会直接终止安装并提示你使用 nvm 或 corepack 切换到兼容版本如果版本过高超出支持范围则会弹出警告询问你是强制继续还是退出。这意味着你无需手动比对版本号工具会帮你把关。创建你的第一个 Redwood 项目使用yarn create redwood-app即可创建一个全新的 Redwood 项目yarn create redwood-app my-redwood-project偏好 TypeScript一条命令搞定RedwoodJS 从第一版就内置了完整的 TypeScript 支持创建项目时加上--typescript标志即可yarn create redwood-app my-redwood-project --typescript从当前仓库的模板结构看create-redwood-app/templates 下同时维护了js与ts两套完整模板两者在目录结构上完全一致区别仅在文件扩展名与tsconfig等配置上因此无论选择哪种语言后续开发体验和文档指引都是通用的。交互式引导CLI 会问什么如果不在命令行中指定全部参数create redwood-app会以交互方式引导你完成配置。结合 create-redwood-app.js 的源码实现你可以预期以下流程目标目录询问在哪里创建应用默认my-redwood-app支持用.表示当前目录语言选择TypeScript还是JavaScript默认 TypeScript是否初始化 Git 仓库默认Yes会执行git init git add . git commit是否执行yarn installYarn 2 环境下才会询问如果目标目录已存在且非空还会提示你是退出、覆盖还是换个目录。所有交互都可以通过命令行参数跳过常用参数包括参数别名说明--typescript--ts生成 TypeScript 项目--yes-y跳过所有提示使用默认值--overwrite无目标目录非空时也强制创建--git-init--git是否初始化 Git 仓库--commit-message-m初始提交的 commit message默认Initial commit--telemetry无是否发送遥测数据可用环境变量REDWOOD_DISABLE_TELEMETRY1关闭--yarn-install无是否安装依赖Yarn 2 可用可用--no-yarn-install跳过创建完成后工具还会在项目内生成.redwood/telemetry.txt用于记录匿名使用数据并自动执行yarn rw-gen生成类型文件见 createProjectFiles 与 generateTypes。启动开发服务器创建好项目后进入目录、安装依赖并启动开发服务器cd my-redwood-project yarn install yarn redwood dev浏览器会自动打开 http://localhost:8910你会看到 Redwood 的 Welcome Page其中链接了大量学习资源。看到这个页面意味着你已经成功运行了第一条 Redwood CLI 命令。关于端口和启动行为可以从新项目的 redwood.toml 配置中一探究竟[web] title Redwood App port 8910 apiUrl /.redwood/functions [api] port 8911 [browser] open true也就是说yarn redwood dev会同时启动两个服务Web 前端运行在 8910 端口React ViteAPI 后端GraphQL运行在 8911 端口[browser] open true正是浏览器自动打开这一行为的来源。前后端端口都可以在这里自由修改apiUrl则定义了前端请求 API 的路径前缀。探索 CLIyarn redwood --help从开发到部署Redwood 的 CLI 会一路陪伴你。你可以随时查看全部可用命令yarn redwood --help完整的命令参考见 CLI 命令参考文档。另外记住一个常用技巧rw是redwood的简写例如yarn rw dev与yarn redwood dev完全等价后续文档将大量使用更简洁的yarn rw形式。接入数据库从 Prisma Schema 开始一个没有数据库的全栈框架是不完整的。在 Redwood 中一切从 Schema 开始。打开api/db/schema.prisma将模板自带的UserExample模型替换为下面的Post模型model Post { id Int id default(autoincrement()) title String body String createdAt DateTime default(now()) }Prisma声明式的数据建模Redwood 使用 Prismadatasource db { provider sqlite url env(DATABASE_URL) } generator client { provider prisma-client-js binaryTargets native } model UserExample { id Int id default(autoincrement()) email String unique name String? }注意数据库连接字符串是通过环境变量DATABASE_URL提供的——这也是 Redwood 管理环境变量的通用方式可参考 环境变量文档。如果切换到 PostgreSQL 或 MySQL只需修改provider与DATABASE_URL即可。执行数据库迁移Prisma Migrate 会基于 Schema 帮你无痛地生成数据库迁移。运行yarn rw prisma migrate dev # ... ? Enter a name for the new migration: › create posts工具会提示你为迁移命名输入create posts即可。该命令会对比 Schema 与数据库当前状态生成迁移 SQL、创建迁移记录并同步更新 Prisma Client。生成 CRUD 脚手架generate scaffold接下来用一条命令生成对Post模型进行完整 CRUDCreate、Retrieve、Update、Delete操作所需的全部代码yarn redwood generate scaffold post执行完毕后导航到 http://localhost:8910/posts/new填写 title 和 body点击 Save——没错你已经在数据库里创建了一条 postyarn rw generate scaffold model会一次性生成页面Pages列表页、详情页、新建页、编辑页组件Components表单、单元格等 UI 组件服务层Services封装 CRUD 逻辑的 GraphQL 查询与变更路由Routes自动注册到Routes.tsx中。从源码结构看脚手架生成器位于 packages/cli/src/commands/generate/scaffold/scaffold.js它会基于你定义的 Prisma 模型自动推导字段并生成对应的表单、验证与类型。这是 Redwood 的核心生产力特性之一数据模型即 API 蓝图模型定义好后完整的前后端 CRUD 在几秒内即可落地。前端先行用 Storybook 隔离开发 UI还没想好数据模型长什么样完全没关系——Redwood 深度集成了 Storybook让你可以在完全脱离后端的情况下对 React 组件进行设计稿原型化、构建与验证yarn rw storybook如果你的页面提示 Couldnt find any stories那是因为项目里还没有*.stories.{tsx,jsx}文件。最简单的方式是生成一个 CellRedwood 的数据获取抽象详见 Cells 文档CLI 会顺带生成对应的 story 文件yarn rw generate cell examplePostsStorybook 服务器会热重载此时你就能得到几个可直接操作的 story 了。它们可能看起来有些朴素因为没有引入样式库——不妨看看 Redwood CLI 的setup ui命令是否支持你心仪的样式库yarn rw setup ui --help从当前仓库源码看setup ui已内置了对主流样式方案的一键接入例如 tailwindcss.js、chakra-ui.js 与 mantine.js运行对应子命令即可自动完成依赖安装与配置。用 Jest 覆盖全栈测试从个人项目走向创业公司测试是规模化路上绕不开的一环。Redwood 在前端与后端都深度集成了 Jest并且在生成组件和服务时会自动生成对应的测试文件让整个应用保持测试覆盖变得非常轻松yarn rw test为了让集成体验更无缝Redwood 还对 Jest 做了两方面的增强数据库场景Scenarios允许你在测试中定义带关联数据的场景服务层测试可以直接基于真实数据库进行详见 测试文档中的 Scenarios 章节GraphQL Mocking在前端组件测试中模拟 GraphQL 调用无需真实后端即可验证组件行为详见 测试文档中的 GraphQL Mocking 章节。部署与认证上线前的最后一步选择部署目标Redwood 同时面向**无服务器Serverless与传统服务器Serverful**两类部署形态例如 Netlify、Vercel以及 Render、AWS 等。查看支持的部署目标并生成部署配置yarn rw setup deploy --help别忘了认证上线前务必加上认证Redwood 提供了两条路径dbAuth框架内置的、基于数据库的认证系统无需任何第三方服务即可完成邮箱密码注册登录详见 dbAuth 安装与配置第三方认证提供商可集成近十余种主流第三方认证服务。查看可用的认证方案yarn rw setup auth --help从仓库结构看各认证提供商的实现以独立包形式维护在 packages/auth-providers 下包含 auth0、azureActiveDirectory、clerk、dbAuth、firebase、netlify、supabase、supertokens 等每个包都带有对应的模板、文档与测试。下一步深入学习学习 RedwoodJS 的最佳方式是通读官方完整的 Redwood 教程它将带你构建一个完整的真实应用覆盖路由、页面、服务、认证、部署等全部环节。当你熟悉了本文的快速启动流程后还可以继续探索 路由、GraphQL、服务层 与 单元格Cells 等进阶主题把 Redwood 的全栈能力真正用起来。以上就是从零到部署的完整 RedwoodJS 快速启动路径创建项目 → 定义数据模型 → 生成 CRUD → Storybook 打磨 UI → Jest 保障质量 → 配置部署与认证。现在打开终端运行你的第一条yarn create redwood-app吧。赞分享后端前端Web框架开发工具【免费下载链接】redwoodRedwoodGraphQL项目地址https://gitcode.com/gh_mirrors/re/redwood点击查看免费下载相关推荐RedwoodJS 快速上手指南创建全栈项目、接入数据库 CRUD、Storybook 与 Jest 测试实战RedwoodJS 快速上手指南创建全栈项目、接入数据库 CRUD、Storybook 与 Jest 测试实战 RedwoodJS 是一个面向全栈 Web 应后端前端Web框架开发工具RedwoodJS 入门实战指南从脚手架到全栈 CRUD、Storybook 与部署的完整工作流RedwoodJS 入门实战指南从脚手架到全栈 CRUD、Storybook 与部署的完整工作流 导读 本文基于 RedwoodJS 官方 test pro后端前端Web框架开发工具RedwoodJS 完整上手指南从脚手架、Prisma 数据库到 Storybook、Jest 与部署RedwoodJS 完整上手指南从脚手架、Prisma 数据库到 Storybook、Jest 与部署 导读 本文基于 RedwoodJS 官方脚手架项目 f后端前端Web框架开发工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

ps 命令速查:Linux/Unix 进程状态查看的完整实战指南

ps 命令速查:Linux/Unix 进程状态查看的完整实战指南

文档知识库教程开发工具 【免费下载链接】reference 为开发人员分享快速参考备忘清单(速查表) 项目地址: https://gitcode.com/jaywcjlove/reference 点击查看 免费下载 Linux 为我们提供了一个名为 ps 的实用程序,用于查看与系统上的进程相关的信息&am…

2026/9/24 2:26:51 阅读更多 →
Agent集群失控怎么办?企业级Agent架构从Demo走向生产

Agent集群失控怎么办?企业级Agent架构从Demo走向生产

文章目录前言一、Agent 一多就乱,问题到底出在哪1.1 单打独斗的 Agent,像个全能实习生1.2 ReAct 循环:走一步算一步,翻车了才知道二、Plan 的全生命周期:从立 flag 到拔 flag2.1 创建计划:先把活拆成待办清…

2026/9/24 2:25:50 阅读更多 →
如何用git把本地的文件上传到码云中仓库

如何用git把本地的文件上传到码云中仓库

Git 本地仓库与 Gitee 远程仓库冲突解决完整流程一、配置用户信息(全局,只需执行一次)以下命令用于配置 Git 全局用户信息,新项目无需重复设置:git config --global user.name 你的用户名 git config --global user.em…

2026/9/24 2:25:50 阅读更多 →

最新新闻

CAN总线ASC日志解析与故障定位实战指南

CAN总线ASC日志解析与故障定位实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 8:03:23 阅读更多 →
RV1126B MIPI-CSI图像采集失败的三大隐性断点与实操修复

RV1126B MIPI-CSI图像采集失败的三大隐性断点与实操修复

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 8:03:23 阅读更多 →
计量芯片封装选型:面积、功能与良率的工程平衡

计量芯片封装选型:面积、功能与良率的工程平衡

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 8:03:23 阅读更多 →
nginx-ui DevDebugPanel 开发调试面板组件实战指南:从使用到源码原理

nginx-ui DevDebugPanel 开发调试面板组件实战指南:从使用到源码原理

后端前端运维MCP 服务 【免费下载链接】nginx-ui Yet another WebUI for Nginx 项目地址: https://gitcode.com/gh_mirrors/ngi/nginx-ui 点击查看 免费下载 导读 DevDebugPanel 是 nginx-ui 前端(app/ 目录,Vue 3 TypeScript Ant Design…

2026/9/24 8:03:23 阅读更多 →
我用Python采集了全校课程数据,做了个智能选课推荐系统,选课再也不盲选

我用Python采集了全校课程数据,做了个智能选课推荐系统,选课再也不盲选

每到选课季,不少人都有过类似的经历:对着教务系统里密密麻麻的课程列表无从下手,不知道哪门课含金量高、哪门老师给分宽松、哪门容易时间冲突,等好不容易翻完培养方案,热门课早就被抢空了。 之前帮身边朋友解决选课问题…

2026/9/24 8:03:23 阅读更多 →
旧华为手机救砖降级实战:MRT HW Tool一键脚本避坑指南

旧华为手机救砖降级实战:MRT HW Tool一键脚本避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 8:02:22 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/23 4:49:06 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →