用途:为在 Moon v2 中按语言新增项目、创建语言专属任务、配置工具链提供简洁的模式参考。
主要能力:以 YAML 示例展示各语言的典型配置,包括 layer、language、fileGroups(sources/configs)与 tasks 定义。PHP 使用 command 执行 Composer,用 script 配合 find 做 lint,建议缓存 vendor/,嵌套结构可用 --working-dir。JavaScript/TypeScript 在 .moon/toolchains.yml 中设置 javascript.packageManager(bun、npm、pnpm、yarn),构建输出到 dist/ 或 .next/,开发服务器用 preset: server 关闭缓存并保持常驻。Python 工具链为实验性(unstable_python),支持 pip、Poetry、Pipenv、PDM、uv,可缓存 .venv/,用 deps: ['~:install'] 确保环境就绪,示例使用 pytest 与 ruff。移动端方面,React Native 复用 JavaScript 工具链,iOS/Android 与 pod-install 分别定义任务;Flutter 使用 system 工具链与 dart 语言,分别构建 iOS 与 Android 产物。
必要用法:任务区分 command(单一可执行文件)与 script(需要 shell 组合命令,如 find | exec);通过 inputs 与 outputs 声明依赖和产物以启用缓存;平台构建与 CocoaPods/Gradle 输出可缓存,模拟器/仿真器启动任务不应缓存。
限制:文档未提供各语言工具链的完整字段说明、版本要求与错误处理细节;Python 工具链标注为实验性。