ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何使用 spacetime dev 创建 SpacetimeDB 项目并开启热重载开发

如何使用 spacetime dev 创建 SpacetimeDB 项目并开启热重载开发 如何使用 spacetime dev 创建 SpacetimeDB 项目并开启热重载开发【免费下载链接】SpacetimeDBDevelopment at the speed of light项目地址: https://gitcode.com/GitHub_Trending/sp/SpacetimeDB如果你要开发一个 SpacetimeDB 数据库模块并希望保存代码后模块能自动重新构建、重新发布可以使用spacetime dev命令。它是一个交互式命令会引导你完成项目创建项目名、项目路径、客户端类型随后进入开发模式本地启动 SpacetimeDB 服务器、创建数据库、构建并发布模块并持续监视源码文件变化。前提是已经安装了 SpacetimeDB CLI安装方式见仓库中的 Getting Started 文档 docs/docs/00100-intro/00100-getting-started/00100-getting-started.md。需要留意文档明确标注spacetime dev目前是 unstable 命令未来可能变化。执行前需要准备什么已安装spacetimeCLI文档要求的第一步。如果后续命令需要登录SpacetimeDB 使用 GitHub 或 Google 登录认证。按 Getting Started 文档可以运行spacetime login它会打开浏览器让你选择 GitHub 或 Google 登录。文档同时说明如果跳过这一步需要登录的命令如spacetime publish在执行时会提示你登录——而spacetime dev的工作流包含自动 publish所以提前登录可以避免中途被打断。用 spacetime dev 创建项目并进入热重载开发在一个没有已有 SpacetimeDB 项目的终端目录中运行spacetime dev当前目录找不到 SpacetimeDB 项目时命令会引导你完成三步首次设置项目名输入项目名例如my-project。项目路径选择项目文件的创建位置默认是./project-name。客户端类型三种选择React创建带 TypeScript 服务模块的 React 全栈 Web 应用客户端与服务器都预配置了热重载文档标注这是 Web 应用的推荐选择。Use Template从内置模板中选择或用owner/repo形式 / git URL 克隆一个已有仓库。内置模板包括basic-ts— 基础 TypeScript 客户端与服务端骨架basic-cs— 基础 C# 客户端与服务端骨架basic-rs— 基础 Rust 客户端与服务端骨架basic-cpp— 基础 C 服务端骨架react-ts— React Web 应用 TypeScript 服务器chat-console-rs/chat-console-cs/chat-react-ts— 完整的聊天示例实现Rust、C#、TypeScript 各一套None只创建服务模块不带客户端代码。需要再选择服务端语言TypeScript、Rust、C# 或 C。服务端代码会创建在项目的spacetimedb/子目录中。完成设置后进入开发模式文档列出的行为如下启动本地 SpacetimeDB 服务器创建一个新的数据库构建并发布模块到该数据库监视源码文件变化你保存改动时自动重新构建并重新发布如果配置了客户端开发服务器则一并运行它文档还说明setup 完成后数据库将可用地址为 maincloud.spacetimedb.com。客户端开发服务器如何被拉起spacetime dev可以自动运行客户端的开发服务器比如 React 前端行为由项目根目录的spacetime.json配置{ dev: { run: npm run dev } }客户端命令有四种来源优先级上 CLI 参数会覆盖配置从项目文件自动检测package.json、Cargo.toml、.csproj在spacetime.json中配置用 CLI 参数覆盖spacetime dev --run yarn dev完全禁用客户端、只跑服务模块spacetime dev --server-only用客户端模板初始化项目时会按项目类型自动在spacetime.json中写好默认客户端命令。如何确认已进入热重载开发判断依据是文档中列出的行为是否依次发生命令行显示本地服务器启动、数据库创建、模块构建并发布之后你修改spacetimedb/下的模块代码并保存spacetime dev会自动重新构建、重新发布无需手动执行构建命令。如果配置了客户端命令客户端开发服务器也应同时运行。再次进入开发时不需要重复设置在已包含spacetimedb/目录的项目目录中直接运行spacetime dev命令会跳过 setup直接连接数据库并进入文件监视状态。此外CLI 参考文档docs/docs/00300-resources/00200-reference/00100-cli-reference/00100-cli-reference.md给出的用法是spacetime dev [OPTIONS] [database]其中DATABASE是可选的位置参数指定要发布到的数据库名/身份不提供时会提示输入--template参数可用模板 ID 或 GitHub 仓库owner/repo或 URL完成项目初始化--skip-publish、--skip-generate分别跳过发布与生成步骤。初始化后的项目长什么样以 TypeScript 项目为例文档示例my-project/ ├── spacetimedb/ # Server module code │ ├── package.json │ ├── tsconfig.json │ └── src/ │ └── index.ts ├── src/ # Client code │ └── module_bindings/ # Generated client bindings ├── package.json ├── tsconfig.json ├── spacetime.json # SpacetimeDB configuration └── README.mdRust、C#、C 项目的结构类似服务端模块都在spacetimedb/下Rust 为Cargo.tomlsrc/lib.rsC# 为StdbModule.csprojLib.csC 为CMakeLists.txtsrc/lib.cpp客户端绑定生成在src/module_bindings/C 项目无客户端代码。可选分支不用交互式流程手动创建项目如果你希望更可控地走标准构建/发布流程可以用spacetime init手动创建例如 TypeScriptspacetime init --lang typescript --project-path ./my-project my-project cd my-project其他语言只需替换--lang参数rust、csharp、cpp。各语言都会生成配置好的构建文件、带示例模块的入口文件src/index.ts、src/lib.rs、Lib.cs或src/lib.cpp以及示例 table 和 reducer 定义。限制与下一步spacetime dev是 unstable 命令参数与交互流程未来可能变化。热重载只监视项目源码文件客户端开发服务器是否运行取决于spacetime.json配置或--run/--server-only参数二者互斥于同一目的一个覆盖、一个禁用。创建好模块后文档给出的下一步是学习 Tables、Reducers、Procedures 等核心概念参见 docs/docs/00200-core-concepts/00100-databases.md以及在不依赖开发模式时手动构建并发布模块参见 docs/docs/00200-core-concepts/00100-databases/00300-spacetime-publish.md。【免费下载链接】SpacetimeDBDevelopment at the speed of light项目地址: https://gitcode.com/GitHub_Trending/sp/SpacetimeDB创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表