lair

Frontend Application Environment

Nest

Nest is a foundational framework for front end web applications. It provides the following:

  • Development Server that compiles CoffeeScript, Sass etc... ( via Mincer, Express ).
  • Build System for building and minifying the code (via Mincer, Uglifyjs, CSSWrig).
  • Environment configuration that is available for the front end code.
  • Autoprefix & Autopolyfill your code (TODO).
  • Modular: third party modules can be built for it.
  • Some configuration, some convention.
  • Download and copy all of the external resources. (TODO)

The only conventions are the three main files, that will be build and used:

  • index.html - The only html file that is serves the application
  • application.js - The JavaScript file for that application
  • application.css - The CSS for the application

And the location and naming of the configuration files:

  • config/application.(coffee|js) - The main configuration file
  • config/environments/development.(coffee|js) - The environment specific configuration

The following configurations are available for all built-in modules:

  • assets: An array of directories for Mincer
  • port: The port to run the server
  • static: The static content for the server
  • title: The title of the application
  • buildDirectory: A relative path for the build directory
  • externalCSS: These are the external CSS files that the application uses
  • externalJS: These are the external JavaScript files that the application uses

Any other configuration that you specify here is available for the application.

Example:

module.exports =
  # Basic configuration 
  assets: ["source","stylesheets"]
  static: "static"
  buildDirectory: 'build'
  title: "Test Application"
 
  # Custom configuration 
  endpoint: "http://www.test.com/api/v1"

nest server

It creates a development server for serving the main files.

nest build

It builds all the main files (mainly for production). All of the main files are minified.

nest static

It will start a static server for the build directory, it is used in production.