I hate this. I want the way coffee-script implemented it.
Hogging the ternary syntax while keeping compat is killing this feature.
1) func?.(arg) <- wat?
2) foo?.bar?.baz? <- nope.
Nobody thought of bash before?
I have even greater news for you!
There is a tool that can achieve the same in even less LOC!
You can also run stuff in parallel without having to explicitly define a task for it. You just tell it how many workers you want and which tasks it should execute! (Say: Run 5 tasks while 2 always run in parallel)
Tasks can also have other tasks as dependencies.
There is no need for a defacto "Taskfile" standard because defining Tasks is all you can do and all it does!
It's also pretty stable as it was first released in 1976!
Can you guess which tool it is?
Not upgrading your dependencies on a regular basis is usually the issue that makes you stuck with a certain node version.
The longer you wait the more time you spend on fixing things.
`npm/yarn outdated` helps you find new version quickly. I do this weekly.