返回

文章详情

使用任务运行器处理常见编码任务

Hacker News2026年8月3日 16:51

(最初于2019年发布。我从档案中取出这篇文章,在一位读者联系我告诉我他们怀念这篇文章后进行了重新制作。) 作为软件开发人员,我在日常工作中经常在不同的代码库之间切换。每个代码库可能使用不同的技术栈,但有一些共同的任务我需要在所有这些代码库中运行,无论栈是什么:我需要安装依赖项,构建源代码,进行代码检查,格式化代码,运行测试,进行数据库迁移,部署到临时环境,创建新版本,启动依赖服务,你懂的。根据每个代码库中使用的具体工具,我必须记住一些繁琐的命令以便在命令行中调用。格式化用rust fmt吗?用mix deps.update来更新依赖项吗?是用./gradlew build还是回到mvn?这些年后是yarn还是npm还是pnpm?我需要在npm run prettier中传递任何参数吗?再次运行所有迁移的那个三步命令是什么?我不想记住这些。我希望我可以简单地说“构建代码”,“进行代码检查”,“格式化”,“运行迁移”,“安装依赖项”。为了让生活稍微简单一点,我常常创建便捷工具,让我以相同的方式运行常见任务,而不论我在哪个代码库中。这让我可以将肌肉记忆应用到我每天做十几次的事情上。有几种方法可以实现这一点,从老式的bash脚本和make到更现代的工具,如mise和just。有人开始称这些工具为“任务运行器”,所以我想这就是我在这里要坚持的名称。让我们快速看一下这些选项。一个简单的Bash脚本我们可以编写一个简单的shell脚本(或请我们喜欢的LLM帮助)作为一个小包装器,用于处理我们需要的常见命令。以下是您可以使用的示例。在此示例中,我假设您使用node/npm/javascript。如果您不是,我相信您可以自己填补空白。 #!/usr/bin/env bash set -e function usage { # 打印用法信息 } function install { # 安装依赖 npm run ci } function build { # 触发构建过程 npm run build } function test { # 运行测试套件 # 您甚至可以在一个命令中运行多个步骤,酷吧? npm run test:unit npx run playwright } function format { # 它很好地隐藏了我们需要传递给底层命令的参数 npm run prettier --write } if [[ $# -lt 1 ]]; then usage exit 1 fi TARGET = $1 case $TARGET in

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡