EvanLovely / theme-tools

Flexible, un-opinionated tools for front end development
MIT License
11 stars 5 forks source link
build-tools gulp monorepo pattern-lab task-runner

Theme Tools by Basalt

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().

Contributing

Dev Setup

This uses lerna for monorepo setup.

npm install
npm run bootstrap # this is `lerna bootstrap`

Why is this a monorepo?

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:

Cons:

This is dumb! Nobody in open source does this!

Babel, React, Meteor, and Ember, among others, do this.

Previous discussion