Giter Site home page Giter Site logo

jerrysdesign / webpack-pug-scss-boilerplate Goto Github PK

View Code? Open in Web Editor NEW

This project forked from alexnoz/webpack-pug-scss-boilerplate

0.0 2.0 0.0 259 KB

:open_file_folder: Webpack 4 based boilerplate for building apps

JavaScript 92.89% HTML 3.79% CSS 3.32%

webpack-pug-scss-boilerplate's Introduction

Webpack Pug SCSS Boilerplate

A webpack 4 based boilerplate for building web apps.

Features:

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.

Usage:

  • Clone the repo via git clone https://github.com/alexnoz/webpack-pug-scss-boilerplate.git
  • 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:

app/
|-index.pug
|-index.js
|
|-about/
|   |-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 `parts.page` for each page with necessary options
const pages = [
  parts.page({
    title: 'Home',
    entry: {
      home: paths.app
    },
    template: path.join(paths.app, 'index.pug'),

    // An array of chunks to include in the page
    chunks: ['home', 'runtime', 'vendors']
  }),
  parts.page({
    title: 'About',
    path: 'about',
    entry: {
      about: path.join(paths.app, 'about')
    },
    template: path.join(paths.app, '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 parts.page() 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') {
  require('./path/to/page.pug');
}

webpack-pug-scss-boilerplate's People

Watchers

 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.