Backpack

Backpack is minimalistic build system for Node.js. Inspired by Facebook's create-react-app, Zeit's Next.js, and Remy's Nodemon, Backpack lets you create modern Node.js apps and services with zero configuration. Backpack handles all the file-watching, live-reloading, transpiling, and bundling, so you don't have to. It comes with a few conventions defaults (like support for the latest JavaScript awesomeness (i.e. async/await, object rest spread, and class properties)), but everything can be customized to fit your project's needs. Best of all, you can easily add Backpack to your existing Node.js project with just a single dependency.
Backpack comes with the "battery-pack included":
  • Latest ES6 features (including module syntax, async/await, object rest spread)
  • SUPER friendly, human readable error messages
  • Live reload (on saves, add/delete file, etc.)
  • Zero-config, one dependency.
HOWEVER, you can configure Backpack to your project's needs. You can modify the underlying Webpack 2 configuration.

How to use

Install it:
npm i backpack-core --save-dev
and add a script to your package.json like this:
{ "scripts": { "dev": "backpack" } }
After that there are just a few conventions defaults:
  • src/index.js: the entry of your app.
...actually that's it.
You can then run your application in development mode:
npm run dev
Successful builds will show a console like this. Note: screenshot taken from running the basic example 
npm run dev

Custom configuration

For custom advanced behavior, you can create a backpack.config.js in the root of your project's directory (next to package.json). Note: backpack.config.js is a regular Node.js module, not a JSON file. It gets used by the Backpack build phase, but does not itself go through babel transformation. So only use JS that's supported by your current Node.js version.
// backpack.config.js module.exports = { /* config options here */ }

Customizing Webpack

To extend webpack, you can define a function that extends its config via backpack.config.js.
// backpack.config.js module.exports = { webpack: (config, options) => { // Perform customizations to config // Important: return the modified config return config } }

Building for Production

Add a npm script for the build step:
{ "scripts": { "dev": "backpack", "build": "backpack build" } }
Then run the build command and start your app
npm run build node ./build/main.js

CLI Commands

backpack dev

Runs backpack in development mode.
Your code will reload if you make edits.
You will see the build errors in the console that look like this.

backpack build

Builds the app for production to the build folder.
It correctly bundles your production mode and optimizes the build for the best performance.
You can run your production application with the following command:
node ./build/main.js
Your application is ready to be deployed!
Note: Make sure to add the build directory to your .gitignore to keep compiled code out of your git repository

Comments

Popular posts from this blog

Google Open Source it's Google I/O 2019 Android App

Nikita Voloboev - His wonderful world of macOS Applications

Free Tools for Teams and Collaboration For Developers