Skip to content
This repository has been archived by the owner on Jan 16, 2023. It is now read-only.

๐Ÿ”ฎ modern tooling for old-school static webpage development

License

Notifications You must be signed in to change notification settings

erickzhao/static-html-webpack-boilerplate

Repository files navigation

๐Ÿš€ Static HTML Webpack Boilerplate

GitHub version Build Status Dev Dependencies Codacy Badge

Enjoy hand-writing your HTML? Keep it old-school with modern build tools. This boilerplate setup makes it easier to write your own styling, scripts, and mark-up.

โœจ Features

  • Write SCSS and modern JavaScript code in src and build minified, transpiled code for production in dist
  • Continuous integration with linting tests and deploying to gh-pages
  • Live reloading with webpack-dev-server
  • ES6+ to ES5 transpilation, bundling, and minification
  • SCSS to CSS transpilation, bundling, autoprefixing, and minification
  • Automatic copying of HTML and static assets from src to dist folders
  • Linting for styles and scripts

๐Ÿ›  Usage

  • Use this template on GitHub or download the latest release from the Releases page.
  • Write all your ES2015+ Javascript code in src/js and SCSS styling in src/style. Store static assets in src/static. Organize HTML files the way you like.
  • Available commands:
    • npm run build: Build files to the dist folder. Transpiles down to ES5 and bundles all JS into app.bundle.js. Transpiles SCSS to CSS and adds prefixing into style.bundle.css. Copies static assets and HTML over, and bundled CSS and JS gets added to HTML file.
    • npm run start:dev: Run webpack-dev-server at localhost:9000. Includes live reloading on any Javascript/SCSS/HTML changes.
    • npm run start: Builds files and runs a local production server on localhost:8080 with http-server.
    • npm run run lint:js: Lints JS with ESLint.
    • npm run lint:styles: Lints SCSS stylesheets with stylelint.
    • npm run lint:html: Lints HTML for a11y issues using pa11y.

๐Ÿ”„ Continuous Integration

This boilerplate contains integration with Travis CI. The build system runs all linting scripts and deploys to GitHub pages upon push to the master branch. However, note that this deployment flow only works for Project Pages, as User and Organization pages only support the master branch flow.

For more information on how to set up alternative deployment processes, check out the Travis CI documentation on deployment. The service can deploy to dozens of cloud providers, including Heroku, AWS, and Firebase.