jetpack
Version:
Jetpack wraps webpack and nodemon to give you the best development workflow.
34 lines (21 loc) • 2.33 kB
Markdown
## Comparison
There exist many tools that try and make working with webpack/rspack easier:
* **create-react-app** – a great and powerful tool. I personally tend not to use, because I find it slightly big and intimidating with a large codebase, it's overly React specific and brings in opinionated tools such as `jest` testing framework. But it's a very comprehensive tool with great documentation, so keep using it if it works for you!
* **pwa-cli** – very similar to what jetpack is trying to do. Has a neat plugin system for extending its functionality beyond what the core provides. Why jetpack and not pwa-cli? Not sure, you'll have to try both and see what you prefer.
There are also alternatives to webpack/rspack:
* **Parcel** is making 🌊. Let's see what version 2.0 brings to the table. It has very similar goals to that of jetpack's – most things should just work and be convenient without configuration.
* **Browserify** – probably still has a hard core fan base ;) with dev servers similar to jetpack, e.g. [budo](https://github.com/mattdesl/budo) and [bankai](https://github.com/choojs/bankai) to mention a couple.
There also exist higher level frameworks for certain use cases:
* **Next.js** - use this when you need server side rendering. Server side rendering can be tricky to wrap your head around and so when you just want an Single Page Application – jetpack might be a better choice.
* **Gatsby.js** - use this when you're building a web app that can be exported to a bunch of html files – it's a great fit for websites. For richer, interactive web applications, jetpack might just be a simpler choice.
#### Conclusion
In general, where jetpack tries to be different is:
- make it possible to run globally anywhere on your machine, just like you can run `node ~/Desktop/test.js`
- have [good workflow](./06-workflow-and-deployment.md) for simultaneously developing the client and the server
- make sure that if no configuration is touched, the application is bundled in the best possible way for production
- serve the SPA use case well (as opposed to SSR or SSG)
## Bonus
Because jetpack avoids anything too fancy, a lot of the time your app might already work with jetpack out of the box. For example, this works:
$ npx create-react-app my-app
$ cd my-app
$ jetpack