All Projects → sebbekarlsson → fjb

sebbekarlsson / fjb

Licence: GPL-3.0 license
fast javascript bundler 📦

Programming Languages

c
50402 projects - #5 most used programming language
HTML
75241 projects
python
139335 projects - #7 most used programming language
shell
77523 projects
javascript
184084 projects - #8 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to fjb

hexo-component-inferno
A collection of Inferno.js layout components and utility scripts for Hexo
Stars: ✭ 20 (-80.58%)
Mutual labels:  jsx
wparcel
A webpack-based parcel-like web application bundler
Stars: ✭ 45 (-56.31%)
Mutual labels:  bundler
crud-app
❄️ A simple and beautiful CRUD application built with React.
Stars: ✭ 61 (-40.78%)
Mutual labels:  jsx
ios-scriptable-tsx
在 vscode 上使用 typescript 和 jsx 开发 ios 小组件的小框架.基于 Scriptable app.
Stars: ✭ 113 (+9.71%)
Mutual labels:  jsx
ECHI VUE TODO
使用 Vue 开发的一款 TODO 应用,包含登录、待办、日程、历史事项、回收站。项目较为小型,适合进阶学习使用(💡请注意,项目大量使用 jsx 进行开发)。
Stars: ✭ 19 (-81.55%)
Mutual labels:  jsx
React-Netflix-Clone
A Fully Responsive clone of Netflix website built using React.JS as a Front-end & Firebase as a Back-end.
Stars: ✭ 91 (-11.65%)
Mutual labels:  jsx
Pax
The fastest JavaScript bundler in the galaxy.
Stars: ✭ 2,626 (+2449.51%)
Mutual labels:  bundler
adonis-bundler
Blazing fast, zero configuration assets bundler for AdonisJS
Stars: ✭ 19 (-81.55%)
Mutual labels:  bundler
vuetify-tsx
Vuetify TSX is just a wrapper lib around vuetify components.
Stars: ✭ 20 (-80.58%)
Mutual labels:  jsx
awesome-esbuild
A curated list of awesome esbuild resources
Stars: ✭ 195 (+89.32%)
Mutual labels:  bundler
core
Server side rendering with The Elm Architecture in Deno
Stars: ✭ 16 (-84.47%)
Mutual labels:  jsx
studybuddy-web
📚 Website for all the study materials for IIITV curriculums 🎉
Stars: ✭ 17 (-83.5%)
Mutual labels:  jsx
vue3-jd-h5
🔥 Based on vue3.0.0, vant3.0.0, vue-router v4.0.0-0, vuex^4.0.0-0, vue-cli3, mockjs, imitating Jingdong Taobao, mobile H5 e-commerce platform! 基于vue3.0.0 ,vant3.0.0,vue-router v4.0.0-0, vuex^4.0.0-0,vue-cli3,mockjs,仿京东淘宝的,移动端H5电商平台!
Stars: ✭ 660 (+540.78%)
Mutual labels:  jsx
string-dom
Create HTML strings using JSX (or functions).
Stars: ✭ 13 (-87.38%)
Mutual labels:  jsx
react-calculator
📐 PWA React + Redux Calculator
Stars: ✭ 65 (-36.89%)
Mutual labels:  jsx
role-based-access-control
Role-based authorization || Role-based access-control in React.js
Stars: ✭ 111 (+7.77%)
Mutual labels:  jsx
react-ui-components
React UI Components (npm @assenti/rui-components)
Stars: ✭ 21 (-79.61%)
Mutual labels:  jsx
requirex
A different kind of module loader 📦🦖
Stars: ✭ 20 (-80.58%)
Mutual labels:  bundler
react-jsx-renderer
A React component for Rendering JSX
Stars: ✭ 43 (-58.25%)
Mutual labels:  jsx
math-magicians
Website for all fans of mathematics. It is a Single Page App (SPA) that allows users to make simple calculations. read a random motivation-related quote and write a to-do list.
Stars: ✭ 22 (-78.64%)
Mutual labels:  jsx

Fast JavaScript Bundler

Compile and test https://fjbundler.com

What?

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)

Philosophy

  1. A bundler should not need excessive attention.
  2. A bundler should not get in the way of a developers workflow.
  3. A bundler should be fast.
  4. A bundler should not be written in JavaScript / Node.
  5. Commonly used features among JS developers should be supported out of the box.
  6. The output of the bundler should work everywhere. (to an extent which is possible of course)

More About the Philosophy

Output formats

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

Features

  • 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 (--watch)

Planned Features

  • Lazy imports

Example

Below is an example of some code that is 100% supported.
(Without any plugins or configuration)

For more examples, have a look at:

Benchmarks 🚀

To see benchmarks, have a look at benchmarks.md 🔥
You can also view them over at https://fjbundler.com

Installing the easy way

Using apt

The easiest way to install FJB is to head over to releases and download a .deb file that suits you.
Then you can simply run:

sudo apt install ./<filename>.deb

Installing the complicated way

Dependencies

To build fjb you will need the following:

  1. A C compiler (I would suggest gcc)
  2. Git

Steps to Install 🔧

Compiling it

  1. Clone down the repository
  2. Run:
./build.sh

This step will generate a fjb.out executable file.
You can start using this right away. 🎩

Installing globally

To continue and install fjb globally: Run:

make install

Also make sure you add $HOME/.local/bin to your PATH.
https://unix.stackexchange.com/questions/26047/how-to-correctly-add-a-path-to-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?

Yes

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

Will you add support for writing plugins in JavaScript?

No. I don't think JavaScript belongs in a bundler.
The reason why most bundlers today are slow, is because they are written in JavaScript.

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?

GPL-3.0, LICENSE.md

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].