🏗💠 fliphub
the builder, of builders.
👾 all you need
see the example
enables configs that would take hundreds or thousands of lines, with just a few properties.
const FlipHub = entry: './src/index.js'
📦 installation
yarn add fliphubnpm i fliphub --save
🗝️ legend
👋 intro
- explain the goals, mentality, reasoning
changelog
📅❗keep up to date! updated frequently.
all the apps
one app? two apps? 100 apps? fusebox, rollup, and webpack? nodejs server, inferno, and react? existing configs? happy and no happy pack? at the same time? no sweat.
const FlipHub = // take an existing config, flip it to fusebox or rollup or webpackconst config = configflips = to: 'fusebox' const apps = config name: 'infernod' entry: './src/index.js' presets: 'inferno' 'neutrino-preset-happypack' 'web' name: 'backend' entry: './backend/src' presets: 'node' FlipHub
♻️ reusability?
const FlipHub = const apps = name: 'reacted' presets: 'react' name: 'infernod' presets: 'inferno' FlipHub
they are configured for each environment by default and can be customized for any config you want
⚠️ the problem
- build systems are notorious for their difficulty.
- finding and setting up the right
- scripts
- plugins
- loaders
- configs
- requiring the dependencies
- bloating your config files
- making configs for
- development bundling
- production bundling
- production dev bundling
- test environments
- development servers
- production servers
- tedious, with a high barrier of entry
- time intensive; switching build systems for 1 app is grueling
- ... all of the above for every application
✔️ the solution
- with the flip of a flag, you can go from webpack, to fusebox, to rollup or any other supported build system.
- existing configs can be used and enhanced with ease.
- easily create presets & hubs to start converting your build system to another, flip the switch to keep compatibility without breaking everything,
📘 examples
- examples-minimal
- examples-canadas
- examples-monorepo
- examples-react
- examples-react-and-alias
- examples-typescript
- examples-node
- examples-lint
- examples-compat 🚧
- examples-tests 🚧
- examples-webworker 🚧
- examples-code-splitting 🚧
- examples-es6-ts-config 🚧
- examples-flags 🚧
📚 documentation
- 📖 see the wiki
- [🚧 see the work-in-progress docs][docs-wip]
💠 hubs (middleware +)
🚩 flags
☕🏳️ filters
white-list flags are used to filter which apps are run for different operations
🏹 aliasing
🍰 presets
const apps = presets: 'alias-resolve' 'neutrino-preset-web' 'eslint' const appsWithArgs = presets: aliasResolve: __dirname presetWeb: null eslint:
v0
v0 is still available as flipbox but is unmaintained.