• Stars
    star
    172
  • Rank 221,201 (Top 5 %)
  • Language
    JavaScript
  • Created about 7 years ago
  • Updated about 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A prepackaged Webpack for easy frontend demos.

Demopack

Fire up a pre-configured, live reloading Webpack server that supports React, (S)CSS and files for quick demos and tutorials.

Like create-react-app, but without needing to create a new project and npm install all the things.

Supports JavaScript, JSX, Sass, CSS Modules and images out of the box. 0 configuration required!

Catch this quick demo on Youtube to learn more :).

But why?

I love Webpack, and I love tools like create-react-app, but they come with some set up cost.

  • For Webpack, it takes a reasonable amount of time to configure and set it up. I love this for full projects, but for quick experiments/demos, it's pretty slow.
  • Similarly create-react-app is great but the setup time in generating a new project can be relatively slow, especially on slow networks when you have to install all the dependencies!

The idea behind demopack is that it's a pre-packaged Webpack. It includes and configures everything you need, so all you have to do is install demopack once, and then when you run it there's no more setup.

Demopack is not designed for fully featured projects, but for small demos or one off projects where you need no extra configuration. For "proper" projects I recommend either Webpack from scratch or a tool like create-react-app.

Installation

Please note that demopack is very new and I'm sure it might not work right for all people on all machines. Please open an issue if you have any problems or suggestions!

You should install demopack globally so you can easily run it in a directory.

Unfortunately demopack is taken on npm, so you need to install the scoped version:

npm install --global @jackfranklin/demopack
yarn global add @jackfranklin/demopack

You'll need to be running Node 8 or higher.

Usage

Given a folder with the following file in it:

// index.js
console.log('Hello World!');

Running demopack in that directory will:

  • Fire up a Webpack server on port 8080 (or another free port).
  • Generate an index.html file that loads your JavaScript.
  • Parses any JavaScript (including JSX support) and SCSS for you.

What Demopack supports

Demopack has the following Webpack loaders configured out of the box:

  • babel-loader which parses .js and .jsx files. It runs using babel-preset-env, babel-preset-react and babel-preset-stage-0. This should mean any fancy JS you want to write should be supported :)
  • sass-loader, css-loader and style-loader to load your CSS and SASS (but regular CSS works just fine). If you pass --css-modules CSS Modules will be supported.
  • file-loader to load gif, png, jpg and svg files.

Demopack will run a small local server and will refresh automatically when you change files. Any errors are shown in the terminal and in the page.

If there's anything you think should be supported out of the box, feel free to open an issue and we can discuss it.

Production build

The primary goal of demopack is to be used for development, but you can generate a production build if you like with the --build flag.

This will run all the same plugins, with some extras (CSS is pulled into a separate file, JS & CSS is minified).

The build will output into ./demopack-built and will contain an index.html file alongside any assets.

Configuration

The goal of demopack is to be preconfigured out of the box, but there are some options you can configure. Running demopack --help will show you these:

Options:
  --help          Show help                                            [boolean]

  --version       Show version number                                  [boolean]

  --open-browser  Automatically open the browser when you run demopack. [default: true]

  --css-modules   Enable CSS Modules support.                   [default: false]

  --entry         The JavaScript file that demopack should build from. [default: "index.js"]

  --build         Output static files into a directory. JS and CSS will be minified [default: false]

Changelog

0.2.0

  • Initial release :)

Prior art / credit

  • Thanks to Eduard and his work on create-elm-app which I took a bunch of Webpack code from to make the Demopack terminal output super tidy.
  • Thanks also to everyone behind create-react-app which was the inspiration behind Demopack initially.

More Repositories

1

gulp-load-plugins

Automatically load in gulp plugins
JavaScript
756
star
2

test-data-bot

TypeScript
666
star
3

dotfiles

My dotfiles for my dev environment, compromising of tmux, vim, zsh and git.
Lua
235
star
4

jQuery-Form-Validator

Got bored of using other ones, so made my own
JavaScript
233
star
5

pulldown

The minimal JavaScript package manager.
JavaScript
175
star
6

remote-data-js

Dealing with remote data and all its states properly in JavaScript applications.
JavaScript
149
star
7

universal-react-example

An example Universal ReactJS application
JavaScript
144
star
8

the-refactoring-tales

HTML
138
star
9

tilvim

TIL Vim: Short posts on Vim tips and tricks
HTML
89
star
10

tweet-parser

Parsing tweets into lists of entities.
JavaScript
76
star
11

react-css-modules-webpack

React + Webpack Dev Server + Hot Reloading + CSS Modules
JavaScript
72
star
12

jspm-es6-react-example

JavaScript
69
star
13

fetch-factory

Easy JS objects for talking to your APIs
JavaScript
67
star
14

jspm-dev-builder

Incremental development builds with jspm
JavaScript
66
star
15

elmplayground

An Elm blog, written in Elm, about Elm.
Elm
63
star
16

react-remote-data

JavaScript
57
star
17

so-fetch

TypeScript
57
star
18

html-dist

A tool for editing HTML files to add new scripts
JavaScript
47
star
19

javascriptplayground.com

HTML
39
star
20

react-hot-load-webpack-boilerplate

JavaScript
37
star
21

doccy

Generate Markdown documentation from JavaScript
JavaScript
31
star
22

elm-for-js-developers-talk

Elm
30
star
23

vue2-demo-proj

JavaScript
28
star
24

react-training-workshop

Code, notes and more for a day long React workshop.
JavaScript
27
star
25

todo-react-testing

A silly small React TODO app used in a blog post about testing React apps.
JavaScript
25
star
26

rollup-plugin-markdown

JavaScript
23
star
27

react-no-webpack-required

Using React without Babel & Webpack
JavaScript
22
star
28

do-you-even-elm

How much Elm do you do?
Elm
21
star
29

node-todo

A Node.js & Express.js todo app
JavaScript
19
star
30

vscode-go-to-file

TypeScript
18
star
31

svg-to-elm

TypeScript
17
star
32

Forrst-API-jQuery-Wrapper

A jQuery wrapper for the Forrst API. As the Forrst API grows, so will this.
JavaScript
17
star
33

elm-boilerplate

Starting point for Elm-Lang projects
JavaScript
17
star
34

interactive-es6

Learn ES6 in your browser in an app built in ES6.
JavaScript
16
star
35

responsiveImages

Responsive Images in JavaScript!
CoffeeScript
16
star
36

jspm-es6-example

JavaScript
16
star
37

doubler

Simple doubles for JS testing
JavaScript
14
star
38

react-ast-viewer

An Abstract Syntax Tree browser, written in React
JavaScript
14
star
39

pure-react-forms

JavaScript
14
star
40

JavaScript-Playground--Simple-jQuery-PubSub

Code for the blog post on JavaScriptPlayground.com on a simple jQuery PubSub
JavaScript
13
star
41

cannon-blog

A ReactJS blogging engine
JavaScript
13
star
42

jspm-es6-angular-example

JavaScript
13
star
43

totesy

My own TODO app
JavaScript
12
star
44

elm-game-of-life

Building Conway's Game of Life in Elm
Elm
12
star
45

JS-Regex

Live JS Regular Expression Testing
JavaScript
12
star
46

prettier-scripts

Some shell scripts for Prettier.
JavaScript
12
star
47

github-proxy

GitHub API but cached and offline-able.
JavaScript
11
star
48

authoring-es6-module-example

JavaScript
10
star
49

node_cli_router

A router for parsing command line flags and arguments in your Node CLI scripts.
JavaScript
9
star
50

wouldlike.js

JavaScript
8
star
51

client-webpack-boilerplate

A teeny client side JS webpack boilerplate to get up and running quickly.
JavaScript
8
star
52

react-fundamentals-2019-workshop

JavaScript
7
star
53

skillswap

Share your skills with others and find people to help you learn new things.
JavaScript
7
star
54

half-stack-webpack

JavaScript
7
star
55

zip-list

TypeScript
7
star
56

testing-react-with-jest

JavaScript
7
star
57

react-introduction-exercises

JavaScript
7
star
58

universal-react-talk

JavaScript
7
star
59

jQuery-UK-2012-Conference-Notes

6
star
60

elm-github-info

Fetching info from GitHub using Elm
Elm
6
star
61

ST2-MDN-Search

Search the MDN from within Sublime Text 2
Python
6
star
62

ng2-jspm-typescript

JavaScript
6
star
63

vim-markdown-writer

Some Vim functions to make writing blog posts in Markdown easier.
Vim Script
6
star
64

introduction-to-elm-workshop

Elm
5
star
65

elm-statey

A state machine library in Elm
Elm
5
star
66

elm-json-decoding

Elm
5
star
67

rollup-plugin-import-glob

JavaScript
5
star
68

advent-of-code-2018

Elm
5
star
69

angular-router-browserify

Angular's router module to be used with browserify.
JavaScript
4
star
70

project_templater

A gem for quickly creating project structures.
Ruby
4
star
71

githubissuebrowser

Browse all issues across your repositories to find something to work on.
Ruby
4
star
72

ecmascript-evaluator

JavaScript
4
star
73

JS-Instagram-Wrapper

JavaScript
4
star
74

HTML5-Placeholder-PolyFill

Adds placeholder functionality to input fields in browsers that don't support HTML5 Placeholders
JavaScript
4
star
75

london-elm-018-talk

JavaScript
4
star
76

jspm-test

Browser test runner for jspm projects
JavaScript
4
star
77

elm-console-log

An easier log function for Elm.
Elm
4
star
78

react-webpack-boilerplate

JavaScript
4
star
79

testing-javascript-workshop

JavaScript
3
star
80

elm-connect-four

Connect 4 written in Elm
Elm
3
star
81

jQuote

3
star
82

epic-fel-es6-today-links

3
star
83

devcastin

Ruby
3
star
84

beginning-react

HTML
3
star
85

jack-sublime-snippets

3
star
86

jQuery-Split-List

Splits lists in half
JavaScript
3
star
87

Base-Template

A starting point for all my development.
JavaScript
3
star
88

reactjs-workshop

Code and notes for a ReactJS workshop
JavaScript
3
star
89

Deck.js---Gamepad-API

Deck.js slideshows controlled with the Gamepad API
JavaScript
3
star
90

jsFrame

Combining a jQuery Plugin with a CSS Grid for lovely coding.
JavaScript
3
star
91

MarkdownTwitter

Automatically linking Twitter mentions in Markdown blog posts
Ruby
2
star
92

jackfranklindotcodotuk

JavaScript
2
star
93

frontendlondonfeb2015-jspm-demo

JavaScript
2
star
94

CoffeePubSub

A very small Pub/Sub implementation in CoffeeScript
CoffeeScript
2
star
95

Back-to-Top-Firefox-Plugin

An easy way to get back to the top of any webpage in Firefox.
JavaScript
2
star
96

util-fns

JavaScript
2
star
97

interactive-react

JavaScript
2
star
98

rash

Ruby hash methods in JavaScript
JavaScript
2
star
99

Big-M-Workshop-Notes

2
star
100

langtons-ant-elm

It's an ant innit.
Elm
2
star