SuperAPI AI 工具集

roblox-toolchain

编程与开发

查看项目

更新于 10-15 08:43

技能介绍

用途

roblox-toolchain 描述了一套基于文件系统的 Roblox 开发工作流,让开发者用磁盘上的文件而非在 Studio 内部编写游戏代码。其核心原则是:文件系统是唯一事实来源,代码仓库是权威,Studio 只是构建目标。该技能用于搭建、修改或调试 .project.json 同步、包管理、格式化、静态检查与类型检查等环节。

主要能力

  • Rojo 工作流:提供 rojo serve(实时同步,Studio 插件连接服务器并应用保存的更改)与 rojo build(一次性构建,产出 .rbxl 或 .rbxm)两种模式。
  • 项目文件结构:说明 default.project.json 的字段,包括 name、tree、$className、$path、$properties、$ignoreUnknownInstances,以及 servePort、servePlaceIds、placeId、gameId、serveAddress、globIgnorePaths、emitLegacyScripts 等顶层字段。
  • 文件系统到 DataModel 的映射:列出常见规则,如目录变 Folder、foo.luau 变 ModuleScript、foo.server.luau 变 Script、foo.client.luau 变 LocalScript、init.luau 语义、.rbxm/.rbxmx、.csv、.txt、.json、.toml、.model.json、.project.json、.meta.json 等。
  • 工具链固定:使用 Rokit(Foreman/Aftman 的后继)在 rokit.toml 中固定 rojo、wally、stylua、selene 等工具的精确版本,保证可复现构建。
  • 包管理:介绍 Wally(wally.toml、wally.lock、realm 概念、命令)与 Pesde(pesde.toml、多运行时目标、Wally 桥接、命令)两种方案,并给出选择建议。
  • Sourcemap 与 Luau LSP:通过 rojo sourcemap 生成 sourcemap.json,供 Luau LSP 提供自动补全与 require() 解析;说明 VS Code、Neovim 等编辑器的配置方式。
  • 格式化与静态检查:StyLua(stylua.toml 配置、sort_requires)与 selene(selene.toml,std = "roblox")。
  • CI 流程:给出最小可行 CI 步骤,包括 rokit install、wally install --locked、stylua --check、selene、rojo sourcemap、luau-lsp analyze、rojo build。

使用方式

在项目根目录通过 Rokit 安装固定版本工具,编写 default.project.json 描述 DataModel 树,将源码放在 src/ 下并与挂载点对应。开发时运行 rojo serve 配合 Studio 插件实时同步;同时可运行 rojo sourcemap --watch 生成 sourcemap 供 LSP 使用。依赖通过 wally install 或 pesde install 安装到 Packages/、ServerPackages/、DevPackages/ 等目录,并在 Rojo 项目中挂载。构建与检查在 CI 中执行。

适用场景

  • 希望用版本控制管理 Roblox 游戏源码的团队。
  • 需要可复现构建、统一工具版本与依赖锁定的项目。
  • 需要 Luau 类型检查、格式化与静态检查的工程化流程。
  • 在纯 Luau、Lune 与 Roblox 之间共享包(Pesde 场景)。

限制与注意事项

  • 该技能描述的是推荐模式,不授权重写现有代码;应匹配代码库现有工具链,若项目使用 Aftman 或 Wally,不应未经要求迁移到 Rokit 或 Pesde。
  • 不应凭记忆引用 .project.json 的少见字段、Wally 版本语义或 emitLegacyScripts 默认值,需查阅对应参考文档或运行 rojo --version 确认。
  • sourcemap.json 与 Packages/ 等为生成产物,应加入 .gitignore。
  • Wally 与 Pesde 并非可直接互换,清单格式与解析语义不同,不应无故中途切换。
  • 编辑器配置因编辑器而异,技能仅覆盖 Luau LSP 层。
  • 关于收费、价格、平台支持范围等具体信息,资料中暂未提供。