It is what it says it is.
However, this bundler aims to be a monolithic does-it-all type of bundler; with zero configuration needed. (however, optional configuration will be supported)
- A bundler should not need excessive attention.
- A bundler should not get in the way of a developers workflow.
- A bundler should be fast.
- Commonly used features among JS developers should be supported out of the box.
- The output of the bundler should work everywhere. (to an extent which is possible of course)
More About the Philosophy
Most bundlers allows you to select an output format of the code, such as:
"CommonJS", "AMD", "System", "UMD", "ES6", "ES2015" or "ESNext"
FJB does not implement this concept.
Instead, FJB adapts the code automatically through static analysis.
FJB aims to generate code that works everywhere (when possible).
A bundler should be smart enough so that the developer can focus on other things.
How does one use it?
fjb index.js -o dist.js
- Being fast
- ES6 module imports / exports
- Aliased imports
- Wildcard imports
- JSX support
- TypeScript support (currently unstable and under development)
- Importing JSON
- Importing CSS
- Importing & transpiling SCSS
- Automatic JSX format detection
- Plugin support
- Removing dead code (Tree shaking)
- Supports package.json
- Watchdog (
- Lazy imports
Below is an example of some code that is 100% supported.
(Without any plugins or configuration)
For more examples, have a look at:
To see benchmarks, have a look at benchmarks.md
You can also view them over at https://fjbundler.com
Installing the easy way
The easiest way to install FJB is to head over to releases and download a
.debfile that suits you.
Then you can simply run:
sudo apt install ./<filename>.deb
Installing the complicated way
fjbyou will need the following:
- A C compiler (I would suggest gcc)
Steps to Install
- Clone down the repository
This step will generate a
You can start using this right away.
To continue and install
Also make sure you add
$HOME/.local/binto your PATH.
Questions and Answers
How fast is it?
Have a look at benchmarks.md
How serious is this?
Not sure, it's just a hobby project at this point.
Why are you making this?
Frustration, frustration with existing tools.
The existing alternatives are not fast enough, and gets in the way a bit more than they should.
Is it mature enough to use it with React?
You can definitely bundle React apps with FJB.
However, there might be some missing features / bugs since the JSX implementation in FJB is pretty new.
You can see a working React example here
Should I use it?
I will not encourage anyone to use it, but feel free to do it.
Does it work on Linux?
Does it work on Windows?
Probably not, but feel free to make a pull-request with the required changes for it to work.
Does it work on MacOS?
Probably. I haven't tried it, but I would definitely think so.
Can I contribute?
Yes you can. Simply fork it and start making pull-requests.
How do I create a plugin for it?
Have a look at this guide
What if I find a bug?
If you find a bug, please report it here: https://github.com/sebbekarlsson/fjb/issues
Does it support TypeScript?
Yes, but this feature is under development... so expect bugs.
How do I change the JSX format?
There's no need to worry about that, FJB knows if you're using React or not, and automatically takes care of it for you.
What license is FJB under?
I'm having problems installing FJB
Feel free to create an issue here, and I'll be able to help you.
Can I become a collaborator?
I would prefer if you make pull-requests through forking at first.
Once I've seen that you've made valuable contributions, you might be able to be added as a collaborator.