Member-only story
How to move to monorepo — A Webpack CLI story
Webpack-cli is a mandatory dependency library for webpack 4.
Webpack-cli is a command line interface that encapsulates all webpack’s CLI related code. Supporting Webpack is not an easy job with its various options and varieties. This made webpack-cli a huge repo.
At the core it has init and migrate commands.
- The former is for creating or adding a new entity into Webpack build.
- The latter is for migrating between various versions.
Added to that, there were other functionalities like generating loaders, plugins etc.,
With so many options, the webpack-cli is more complicated. It had a lot of intertwined and cyclic dependencies. It made maintaining and enhancing webpack-cli a nightmare.
This made it difficult for users to understand, contribute or(and) use them.
This should be an ideal situation for most of the projects. Started as a small helper library but ended up being a huge repo.
The key for any open source projects to thrive are,
1. Easy to use / understand projects
2. Increasing contributors
3. Evolving code base
To make the above possible. In the team meeting, I raised an issue to simplify the codebase by splitting them into individual…