#monorepo #tasks #cli-tool #hammer #projects #running

bin+lib hammer-cli

Hammer 是一个无需配置的 CLI 工具,支持使用 monorepo 运行并发任务

7 个版本

0.3.1 2023 年 3 月 5 日
0.3.0 2023 年 2 月 25 日
0.2.3 2023 年 2 月 24 日
0.1.0 2023 年 2 月 22 日

#463 in 并发


用于 2 crates

MIT/Apache

14KB
238

Hammer

Hammer 是一个无需配置的 CLI 工具,支持使用 monorepo 运行并发任务。Monorepo 工具应该尽可能简单。不幸的是,当前的工具过于复杂,可能导致花费大量时间在配置和调试上,而应该关注编写代码。

您可以将 Hammer 视为 turborepo 的轻量级替代品。目前,它仅支持 JS/TS 项目。将来它可能扩展并支持更多语言。

hammer 二进制文件

hammer 二进制文件是 hammer 的 CLI。它的目标是尽可能简单。

语法

hammer <SCRIPT> [OPTS]

示例

hammer dev

运行所有工作区项目的 "hammer:dev" 脚本。

禁用前缀

默认情况下,hammer 会查找包含前缀 hammer: 的所有脚本,这使得逐渐采用该工具并仅运行您想要使用的脚本变得容易。如果您不想这样做,只需使用 --no-prefix 标志,hammer 将直接查找 dev 脚本。

hammer dev --no-prefix

运行所有工作区项目的 "dev" 脚本。

别名: -n

筛选

您可以选择 hammer 应针对哪些项目

hammer dev --filter web

仅运行包含具有 "name" 为 "web" 的 package.json 的项目的 "dev" 脚本

别名: -f

环境变量

默认情况下,hammer 将加载根目录下的 .env 文件,并将其所有变量注入到它启动的每个子进程中。您还可以通过命令行传递变量,并将覆盖系统变量或根目录下的 .env 变量。这对于在测试脚本中更改某些环境非常有用,例如

hammer test --env NODE_ENV:TESTING

运行所有工作区的 "hammer:test" 脚本,并注入环境变量 NODE_ENV=TESTING

别名: -e

我建议在根 package.json 中设置一些脚本,以便轻松拥有这些单独的环境

{
    ...
    "scripts": {
        "dev": "hammer dev",
        "test": "hammer test -e NODE_ENV:TESTING"
    },
    ...
}

使用 pnpm devpnpm test 等于轻松运行

依赖项

~4–16MB
~160K SLoC