Technologies

Dependencies

  • Babel: Compiling the ES6 syntax to a readable format for the browser
  • ESlint: Linting the JavaScript
  • Browser-sync: Used for live reloading
  • Express: Used for routing, fetching from the API and managing the component library
  • Gulp: Used as our task manager to copy assets (audio, video, fonts, images), compiling SCSS and ES6, watching the files for changes, starting up the browsersync, creating the build folder
  • nodemon: watch for code changes and restart browser automagically
  • Nunjucks: Used as our templates language (JavaScript based)
  • Stylelint: linting the SCSS files
  • Webpack: Module bundler mainly used to bundle our JavaScript

Server

The server is ran by Express, which is a framework build upon Node. This handles the routing, manages the data from the API linked in the config and builds up the component library based on the folder structure that contains the Nunjucks files.

Templating (HTML)

For templating the brandplatform makes use of Nunjucks. A Mozilla backed-up library. It's very similar to Twig, but is JavaScript based. The Nunjucks is rendered through Express and is being passed parameters and data based on the route that is visited.

CSS

For CSS we make use of the Gulp task manager to compile it through SASS and lint it eventually with Stylelint.

JavaScript

JavaScript is build, preferably with ES6 because it allows for a more module-based structure. The Gulp task manager is used in combination with Webpack to start the compiler, lint it and bundle everything into one file.

DO NOTE that the main JavaScript file, used as an entry point by webpack, must be placed on the root of the js folder. We loop over all these files in the root of the JS folder and see all of these as entry points in order to create multiple bundles if necessary.