node package manager

aramsay-build

Simple Build

Simple Build is a convention over configuration, opinionated build tool for MEAN stack applications. It handles all the setup and necessary config to utilize various tools for an ideal workflow. It is largely based on John Papa's Hottowel project, this is just a bundled ready-to-use build tool that can simply be installed and referenced from your local gulpfile. The value of this over a generator is maintainability; this tool can be used in multiple projects and updates can be applied with a simple npm install.

disclaimer this project is primarily written to make my life easier. It is built around my preferred structure of MEAN stack applications, and may lack configuration options necessary for use in a different context.

Tasks

  • run:server - Starts the backend server (if applicable), and launches the client code in your browser.

Misc Notes

  • files injected into index.html w/ gulp-inject & wiredep, so no re-building is needed while editing existing files
    • TODO watch for new files and automatically re-fire build:wiredep
  • automatic reloading using browsersync
  • If backend server is running, automatically proxy specified routes (e.g. /api) to that server. Back-end does not need to host static client code.
  • build:bundle process to generate app.js and vendor.js files and a special index.html to reference them.
    • TODO angular template-cache
    • TODO inject & bundle css

TODO

  • plato? - what is this from hottowel?

  • sass -> less

    • build:wiredep support to add compiled css to index.html
    • build:bundle support to bundle css
  • fonts

    • build:bundle support to copy fonts to build
  • images

    • build:bundle support to compress & copy images to build
  • build:bundle call angular template-cache

    • also minify html?
  • Testing - Do I need to support testing, or just leave that to the end user's gulpfile? Yeah, especially client-testing

    • server specs, get to be configured, currently hard coded from my old gulpfile
  • build:bundle overall add more optimizations (minification, etc)

  • bump task to bump version numbers