Flexible, un-opinionated tools for front end development.
This is a monorepo of a lot of awesome stuff. Everything in packages/
can be npm install
-ed by itself - and each of those packages is focused on solving a single need in front end web development, like needing to work with CSS for example. As many know, there's so much more to a good setup than just compiling Scss to CSS: linting, docs, compressing, handling vendor prefixes, managing file assets CSS needs like font files & images - not to mention a watch task for each of those. And that's what Theme Tools plugins do: they solve a collection of challenges to effective tooling around a single need. These examples are just around plugin-sass
; there's several others as well and they all can be combined in different ways depending on the needs of the specific project - use as many or as little as you'd like - even in your pre-existing setup.
See the packages/
folder for the individual npm modules.
See the examples/
folder for how it can all come together.
Each take a config object and returns an object containing functions that it can run, like a css compile, or watch css to compile. No plugins contain gulp.task()
.
This uses lerna
for monorepo setup.
npm install
npm run bootstrap # this is `lerna bootstrap`
Inspired by Babel. Thanks!
The tool for managing the monorepo is Lerna
Juggling a multimodule project over multiple repos is like trying to teach a newborn baby how to ride a bike.
This is quite taboo but let's look at the pros and cons:
Pros:
- Single lint, build, test and release process.
- Easy to coordinate changes across modules.
- Single place to report issues.
- Easier to setup a development environment.
- Tests across modules are ran together which finds bugs that touch multiple modules easier.
Cons:
- Codebase looks more intimidating.
- Repo is bigger in size.
- ???