Up to this point, the execution of the CLIs in development required doing clean builds of the CLIs and its dependencies through Rollup. The consequence of that was longer development cycles, which is intimately connected to the experience contributing to the project.
To improve the experience, we introduced a build system, Nx, which provides incremental builds by leveraging the dependency graph and the file changes. Moreover, the provides an affected command to run a certain script only for the packages that are affected by the changes. The same idea can also be leveraged in continuous integration to only build, test, and lint the packages that are affected by the changes. By doing so we also shorten the CI cycles.
Instead of using Nx, we could have implemented incremental builds and selective task execution ourselves by parsing and extracting information from the graph, but that’d have come with additional complexity and ongoing maintenance cost. The Nx setup is very simple, the tool is well maintained and documented with an active community, and the tests that we did yielded very promising results.