Awesome Open Source
Awesome Open Source

Webpack Pug SCSS Boilerplate

A webpack 4 based boilerplate for building web apps.


Note: There is also the feature/modern-bundle branch where webpack produces two production bundles (legacy & modern). It is experimental so use it with caution.


  • Clone the repo via git clone
  • cd webpack-pug-scss-boilerplate
  • Run yarn install to fetch all the dependencies
  • Run yarn start to start the webpack-dev-server (localhost:8080 will be opened automatically)
  • Start developing
  • When you are done, run yarn build to get the prod version of your app
  • If you want to analyze your production bundle, run yarn run analyze to kick off webpack-bundle-analyzer

Multiple pages:

With a few tweaks, you can use this boilerplate for multi-page apps. Suppose you have the following project structure:

|   |-about.pug
|   |-index.js
  1. Make the following tweaks to the webpack.config.js:
// webpack.config.js

// ...

const commonConfig = merge([
  // ...

  plugins: [
    // 1. Remove this plugin
    new HtmlPlugin({
      template: './index.pug'
    new FriendlyErrorsPlugin(),
    new StylelintPlugin(lintStylesOptions)

  // ...

// ...

// 2. Call `` for each page with necessary options
const pages = [{
    title: 'Home',
    entry: {
    template: path.join(, 'index.pug'),

    // An array of chunks to include in the page
    chunks: ['home', 'runtime', 'vendors']
    title: 'About',
    path: 'about',
    entry: {
      about: path.join(, 'about')
    template: path.join(, 'about/about.pug'),

    chunks: ['about', 'runtime', 'vendors']

// ...

module.exports = env => {
  process.env.NODE_ENV = env

  const config = env === 'production'
    ? productionConfig
    : developmentConfig

  // 3. Merge these pages into the final config
  return merge(commonConfig, config, ...pages)

For details, please see source and html-webpack-plugin docs.

  1. For the live reload to work, you need to include the following snippet into every index.js file (for each page):
if (process.env.NODE_ENV !== 'production') {

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Javascript (1,537,981
Scss (16,206
Boilerplate (5,574
Pug (1,460
Webpack4 (1,131
Related Projects