{"id":24818720,"url":"https://github.com/sebbekarlsson/fjb","last_synced_at":"2025-10-13T20:30:44.164Z","repository":{"id":52946796,"uuid":"323425948","full_name":"sebbekarlsson/fjb","owner":"sebbekarlsson","description":"fast javascript bundler :package:","archived":false,"fork":false,"pushed_at":"2021-09-14T19:56:42.000Z","size":9536,"stargazers_count":109,"open_issues_count":4,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-12-31T10:06:19.210Z","etag":null,"topics":["bundler","javascript","jsx","nodejs","npm"],"latest_commit_sha":null,"homepage":"https://fjbundler.com","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sebbekarlsson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-12-21T19:11:24.000Z","updated_at":"2024-11-30T05:44:18.000Z","dependencies_parsed_at":"2022-08-26T14:04:15.523Z","dependency_job_id":null,"html_url":"https://github.com/sebbekarlsson/fjb","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebbekarlsson%2Ffjb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebbekarlsson%2Ffjb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebbekarlsson%2Ffjb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebbekarlsson%2Ffjb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sebbekarlsson","download_url":"https://codeload.github.com/sebbekarlsson/fjb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236394706,"owners_count":19142139,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bundler","javascript","jsx","nodejs","npm"],"created_at":"2025-01-30T17:37:38.179Z","updated_at":"2025-10-13T20:30:38.387Z","avatar_url":"https://github.com/sebbekarlsson.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align='center'\u003e\n  \u003cimg width='200px' src='logo.png' style='display: block;'/\u003e\n\u003c/p\u003e\n\n\u003cp align='center' style='text-align: center;'\u003e\n  \u003ch1\u003eFast JavaScript Bundler\u003c/h1\u003e\n\u003c/p\u003e\n\n![Compile and test](https://github.com/sebbekarlsson/fjb/workflows/Compile%20and%20test/badge.svg?branch=master)\n[https://fjbundler.com](https://fjbundler.com)\n\n## What?\n\u003e It is what it says it is.  \n\u003e However, this bundler aims to be a monolithic does-it-all type of bundler;\n\u003e with zero configuration needed. _(however, optional configuration will be supported)_  \n\n## Philosophy\n1. A bundler should not need excessive attention.\n2. A bundler should not get in the way of a developers workflow.\n3. A bundler should be fast.\n4. A bundler should not be written in JavaScript / Node.\n5. Commonly used features among JS developers should be supported out of the box.\n6. The output of the bundler should work everywhere. (to an extent which is possible of course)\n\n### More About the Philosophy\n#### Output formats\n\u003e Most bundlers allows you to select an output format of the code, such as:\n```\n\"CommonJS\", \"AMD\", \"System\", \"UMD\", \"ES6\", \"ES2015\" or \"ESNext\"\n```\n\u003e FJB does not implement this concept.  \n\u003e Instead, FJB adapts the code automatically through static analysis.  \n\u003e FJB aims to generate code that works everywhere (when possible).  \n\u003e A bundler should be smart enough so that the developer can focus on other things. :brain:\n\n## How does one use it?\n```bash\nfjb index.js -o dist.js\n```\n\n### Features\n- [x] Being fast\n- [x] ES6 module imports / exports\n- [x] Aliased imports\n- [x] Wildcard imports\n- [x] JSX support\n- [x] TypeScript support (currently unstable and under development)\n- [x] Importing JSON\n- [x] Importing CSS\n- [x] Importing \u0026 transpiling SCSS\n- [x] Automatic JSX format detection\n- [x] [Plugin support](PLUGINS.md)\n- [x] Removing dead code (Tree shaking)\n- [x] Supports package.json\n- [x] Watchdog (`--watch`)\n\n### Planned Features\n- [ ] Lazy imports\n\n## Example\n\u003e Below is an example of some code that is **100%** supported.  \n\u003e (Without any plugins or configuration)\n\u003cimg width='400px' src='img/code.png' style='display: block;'/\u003e\n\n\u003e For more examples, have a look at:\n* [./examples](./examples)\n* [./tests/src/test\\_projects](./tests/src/test_projects)\n\n## Benchmarks :rocket:\n\u003e To see benchmarks, have a look at [benchmarks.md](benchmarks.md) :fire:  \n\u003e You can also view them over at [https://fjbundler.com](https://fjbundler.com)\n\n## Installing the easy way\n### Using apt\n\u003e The easiest way to install FJB is to head over to [releases](https://github.com/sebbekarlsson/fjb/releases) and\n\u003e download a `.deb` file that suits you.  \n\u003e Then you can simply run:\n```bash\nsudo apt install ./\u003cfilename\u003e.deb\n```\n\n## Installing the complicated way\n### Dependencies\n\u003e To build `fjb` you will need the following:\n1. A C compiler (I would suggest gcc)\n2. Git\n\n### Steps to Install :wrench:\n#### Compiling it\n1. Clone down the repository\n2. Run:\n```bash\n./build.sh\n```\n\u003e This step will generate a `fjb.out` executable file.  \n\u003e You can start using this right away. :tophat:\n\n#### Installing globally\n\u003e To continue and install `fjb` globally:\nRun:\n```bash\nmake install\n```\n\u003e Also make sure you add `$HOME/.local/bin`\n\u003e to your PATH.  \n\u003e [https://unix.stackexchange.com/questions/26047/how-to-correctly-add-a-path-to-path](https://unix.stackexchange.com/questions/26047/how-to-correctly-add-a-path-to-path)\n\n## Questions and Answers :question:\n### How fast is it?\n\u003e Have a look at [benchmarks.md](benchmarks.md) :fire:\n\n### How serious is this?\n\u003e Not sure, it's just a hobby project at this point.\n\n### Why are you making this?\n\u003e Frustration, frustration with existing tools.  \n\u003e The existing alternatives are not fast enough, and gets in the\n\u003e way a bit more than they should.\n\n### Is it mature enough to use it with React?\n\u003e You can definitely bundle React apps with FJB.  \n\u003e However, there might be some missing features / bugs since the JSX\n\u003e implementation in FJB is pretty new.  \n\u003e You can see a working React example [here](tests/src/test_projects/with_react)\n\n### Should I use it?\n\u003e I will not encourage anyone to use it, but feel free to do it.\n\n### Does it work on Linux?\n\u003e Yes\n\n### Does it work on Windows?\n\u003e Probably not, but feel free to make a pull-request with the required changes\n\u003e for it to work.\n\n### Does it work on MacOS?\n\u003e Probably.\n\u003e I haven't tried it, but I would definitely think so.\n\n### Can I contribute?\n\u003e Yes you can. Simply fork it and start making pull-requests.\n\n### How do I create a plugin for it?\n\u003e Have a look at this [guide](PLUGINS.md)\n\n### Will you add support for writing plugins in JavaScript?\n\u003e No. I don't think JavaScript belongs in a bundler.  \n\u003e The reason why most bundlers today are slow, is because they are written in JavaScript.\n\n### What if I find a bug?\n\u003e If you find a bug, please report it here: [https://github.com/sebbekarlsson/fjb/issues](https://github.com/sebbekarlsson/fjb/issues)\n\n### Does it support TypeScript?\n\u003e Yes, but this feature is under development... so expect bugs.\n\n### How do I change the JSX format?\n\u003e There's no need to worry about that, FJB knows if you're using React or not,\n\u003e and automatically takes care of it for you.\n\n### What license is FJB under?\n\u003e GPL-3.0, [LICENSE.md](LICENSE.md)\n\n### I'm having problems installing FJB\n\u003e Feel free to create an issue here, and I'll be able to help you.\n\n### Can I become a collaborator?\n\u003e I would prefer if you make pull-requests through forking at first.  \n\u003e Once I've seen that you've made valuable contributions, you might be able to\n\u003e be added as a collaborator.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebbekarlsson%2Ffjb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsebbekarlsson%2Ffjb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebbekarlsson%2Ffjb/lists"}