When not to use Bazel: when attempting to shoehorn it into an existing JavaScript monorepo.
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.