Yep. If its just JS, Turborepo would probably be a better choice nowadays.
Its very flexible, but in this case the flexibility is simple: you specify your input globs, output globs and task dependencies for each package.json command you want it to support and it will use that as the basis to detect cache invalidation.
Works rather well.