WARNING: This project is WIP and under no circumstances production-ready.
Camomile is a toolkit for automating usual tiresome project tasks: building, linting, testing, and packaging.
Think Gulp or Make, but more compact, more customizable, yet less annoying and easy-to-use.
To be honest, I just find it annoying, that tools like Gulp take loads of
space inside my node_modules
, tools like Make aren't JS-friendly, and tools
like Rollup or Webpack weren't built for something that isn't JS. When one
tries to build something that isn't a web application (like a CLI, static site
or a simple script), it's hard to find a lightweight yet robust and modular
tool. Camomile is the solution to all the stress and headaches one gets when
developing something simple for modern web 🍵
Camomile is not a ready project, but rather a list of ambitions. Here is a list of features we want Camomile to have, in comparison to other similar tools:
- like Make, Camomile is easy yet configurable. Each task is a mere JS function, that can do anything
- unlike most JS build tools, Camomile is compact. Broccoli installs 255 extra packages, Camomile will aim to install < 10
- like Ninja, Camomile is effective and doesn't do unneeded work. When a source file didn't change, it won't be compiled
- unlike Gulp, we will always try to ship the latest dependencies, so that
you would never get red text inside
npm audit
- like Taskr, we will aim to provide long-term support for older Node.js versions. Starting with Node.js 12, every LTS version will get all security updates. Yes, beyond after end-of-life
- like Rome, TypeScript is the language of Camomile. With strong typing, we try to eliminate silly bugs
- like Rollup, Camomile is next-generation. It is aimed at ESM codebases and favors ESM output. The configuration is ESM too!
- like Snowpack, Camomile is fast. The defined tasks run in parallel, and we're ready to write native code to speed up the slow chunks
BSD-3-Clause © 2021, Nikita Karamov and other contributors