KJL Logo
KJL Digital Delivery Consultancy
← Back to Projects
Go back to the list of projects...

A replacement to GNU Make with scripting

⏱️ 2 min read
💖Want
We’d love to see this happen.
💬Discuss?
Discuss this project with us!
I'd love a make replacement based on a scripting language, but without loads of dependencies (like node/ bun etc).
taskstask-runnerautomationmake

I ❤️ being able to simply run make from a terminal:

make build

# or

make test

# ... even
make vs
# 👆 This is particularly lazy as it just
# loads Visual Studio with the correct solution for me...
# I actually got an alias of 'm' too.

I’ve even got a common Makefile I bring into all my projects to give me some sensible helpers like auto-displaying the available targets etc… you can find that here.


But… what I’m after is something that can act like make does, but has more script-friendliness.

A cross between a task runner and a scripting system.

I’ve looked at a few JS-based ones which looked good, but nothing really fits the bill…

I wanted something with minimal dependencies - just like make, install it and run.

The problem with any of the JS ones is that you’ll need to make sure you’re using node or bun (or even deno), and then you’ve got to make sure its the right version, with the right dependencies.

Important

It’s all too painful…

I really liked the idea of a TypeScript-based one. TS is simple, its approachable, its got rich frameworks and massive re-use through functions in the ‘Taskfile’ etc.

…but, then I’m back to node and bun.

I contemplated, and even played with, a Go implementation that could parse and execute TypeScript within the app. But as you can imagine that got very complex very quickly.

Now I’m wondering if something like CS-Script could fit the bill?

Either host the engine (ideally in AOT build for minimal self-contained executables) or just install the CS-Script app, and use C# as the Taskfile

Some other alternatives to CS-Script include:

BTW, I have seen Taskfile but I think there’s already too much YAML in the world… and it isn’t a nice scripting experience.


2025-03-05 … found Hereby

I’ve just found Hereby which looks like a good candidate. It has a few dependencies, but it looks like it could be a good fit… I generally use bun for everything, so that’s usually installed anyway.

And it’s no drama to install bun in a pipeline, so that satisfies my want for a TypeScript-based task runner…

Looks active on GitHub and has a good amount of stars and recent commits.

💬What to chat about this project
Discuss this project with us!