ITADN
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

moon

moon 是一个面向 Web 生态系统的仓库management(管理)、organization(组织)、orchestration(编排)和 notification(通知)工具,使用 Rust 编写。moon 中的许多概念深受 Bazel 和其他流行构建系统的启发。

为什么使用 moon?

在开发者生态系统中工作可能非常复杂,尤其是在有效管理仓库时。该使用哪个包管理器?该使用哪个语言版本?如何导入包?如何构建代码?等等。moon 旨在简化这一整个过程,并提供一流的开发者体验。

  • 提升生产力 - 以 Rust 作为我们的基础,我们可以 确保稳健的速度、高性能和低内存占用。不再被漫长的构建阻塞, 专注于你的工作。
  • 卓越的开发者体验 - 作为资深人士,我们深知痛点所在和 令人沮丧之处。我们的目标是缓解并克服这些障碍。
  • 渐进式采用 - 从根本上说,moon 被设计为可以渐进式采用,并且 不是 “一次性全面采用”。按项目迁移,或按任务迁移,由你决定!
  • 减少脚本混乱 - package.json 脚本很快就会变得难以管理。不再需要 将相同的脚本复制到每个包中,或逆向工程确定使用哪些根脚本。 使用 moon,你只需要知道项目名称和任务名称。
  • 确保版本正确 - 无论是 Node.js 还是其他语言,确保每个工具的相同版本 在 每个 开发者的环境中都一致。不再浪费数小时进行调试。
  • 内置自动化 - 在适用情况下,moon 会自动安装 node_modules,或同步 包依赖项,甚至同步 TypeScript 项目引用。
  • 当然,还有下面出色的功能列表!

功能

并非所有功能目前都受支持,请查看文档以获取准确列表!

管理

  • Smart hashing - 从多个来源收集输入,以确保构建是确定性的且可复现的。
  • Remote caching - 在团队成员和 CI/CD 环境之间持久化构建、哈希和缓存。
  • Integrated toolchain - 自动下载并安装显式版本的工具,以确保整个工作区或每个项目的一致性。
  • Multi-platform - 运行在常见的开发平台上:Linux、macOS 和 Windows。

Organization

  • Project graph - 生成项目图,用于依赖和被依赖关系。
  • Code generation - 轻松搭建新的应用程序、库、工具等!
  • Dependency workspaces - 与包管理器工作区协同工作,使项目拥有独立的依赖树。
  • Code ownership - 声明所有者、维护者、支持渠道等。生成 CODEOWNERS。

Orchestration

  • Dependency graph - 生成依赖图以提高性能并减少工作负载。
  • Action pipeline - 使用线程池和我们的依赖图,按顺序并行执行操作。
  • Action distribution - 将操作分发到多台机器上以提高吞吐量。
  • Incremental builds - 借助我们的智能哈希,仅重新构建自上次构建以来已更改的项目。

Notification

  • Flakiness detection - 通过自动重试和透传设置减少不稳定的构建。
  • Webhook events - 接收管道中每个事件的 Webhook。适用于指标 收集和洞察分析。
  • Terminal notifications - 当构建成功时...或失败时,在您选择的终端中接收通知。
  • Git hooks - 管理 Git hooks 以强制执行贡献者的工作流程和要求。

Contributors

特别感谢为该项目做出贡献的杰出人士:

Contributors