Coder Social home page Coder Social logo

jetpack's Introduction

jetpack

Webpack made more convenient.


Jetpack wraps webpack to create a smoother developer experience. Jetpack can be used instead of webpack, webpack-cli, webpack-dev-server and webpack-dev-middleware without writing any configuration. Jetpack is a thin wrapper around webpack, and can be extended with any of the webpack configuration.

  • Sensible defaults to handle modern JavaScript, CSS and images.
  • Preconfigured Babel with @babel/preset-env and @babel/preset-react, configurable via .babelrc.
  • Preconfigured PostCSS with postcss-preset-env including autoprefixing, configurable via postcss.config.js.
  • CSS modules available by switching one config flag.
  • Automatic JSX detection switches between React.createElement or h depending on dependencies.
  • Hot reloading built in for React as well as vanilla JavaScript and CSS.
  • Automatic chunk splitting with inlined runtime and HTML generation.
  • Smooth workflow for simultaneously developing client and server applications.
  • Single dependency with hassle-free updates.
  • Run anywhere without installing locally, just like nodemon.

Why use jetpack? To avoid rolling your own custom webpack config or having to paste it from old projects. Jetpack has a set of defaults that should get you off the ground quickly. And with the proxy config or universal jetpack/serve middleware you don't have to worry about wiring up webpack dev middleware or dev server โ€“ everything just works.

Usage

Install globally or locally:

$ npm install -g jetpack

In your project with package.json or index.js, start your app on http://localhost:3030:

$ jetpack

To build the app for production to a dist directory:

$ jetpack build

Inspect the bundle size and make up:

$ jetpack inspect

Use jetpack anywhere, anytime

One of jetpack goals is to help you run any piece of JavaScript in a browser as easily as it is to run node scripts. Install jetpack globally and point it to any file on your machine. This is an alternative to jsfiddle / codepen / codesandbox style of hacking on things.

$ jetpack ~/Desktop/magic.js

Or any project on your machine:

$ jetpack --dir ~/projects/manyverse

Use jetpack with an API

Another goal of jetpack is to assist you in building complete, production apps. Very often in addition to developing the clientside application, you are also developing an API. Jetpack has a few features to make building such apps easier.

Point your package.json#main to your server entry and package.json#browser to your client entry.

Now you can run your API server together with jetpack in a single command:

$ jetpack -x

Alternatively, specify any command to execute: $ jetpack -x 'nodemon ./api'

Use this even if your server is not written in node

$ jetpack -x 'rails s'

Jetpack provides an ability to proxy requests to your api by specifying proxy configuration in jetpack.config.js or mounting the dev server to your application server using the jetpack/serve middleware. Read more about it in Workflow and deployment docs.

Documentation

Recipes

Your feedback!

This project is an exploration of some ideas accumulated over a few years using webpack in a variety of projects. Webpack is a very powerful and flexible tool. It applies to a lot of use cases and that is one of the reasons it has so many configuration options. Webpack also evolved over the years but preserved backwards compatibility as much as possible to support the large ecosystem built around it.

Jetpack is an exploration of how using webpack could be made easier if the defaults, the CLI usage patterns and the configuration would be different.

I would be very interested in hearing your feedback. You might be new to JavaScript development, you tried jetpack and got stuck with something โ€“ I'd like to fix that. Or perhaps you're a seasoned webpacker in which case I know you saw some specific aspect you probably didn't like, and I'd like to hear about that too.

jetpack's People

Contributors

kidkarolis avatar 0xflotus avatar oliverwoodings avatar sandiiarov avatar kwanman avatar azu avatar

Watchers

James Cloos avatar Jurgutis Vytautas Daukantas avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.