Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Using Node and Grunt to create an awesome workflow

Vernon Kesner
February 13, 2014

Using Node and Grunt to create an awesome workflow

At Ally, we used Node.js along with Grunt, Yo and Bower to develop a custom developer toolset for Ally's front-end development teams. The toolset had to be crafted in a way that allowed us to take a forward approach while still supporting the use of some legacy code and not-so legacy code. In the end, we created a toolset that separated new and on-going development tasks, gave living documentation and usage examples, and also allowed us to focus on maintainable and testable code. In this talk, you will get an overview about problems we tackled as well as solutions we found and approaches to creating a more maintainable codebase.

Vernon Kesner

February 13, 2014
Tweet

More Decks by Vernon Kesner

Other Decks in Programming

Transcript

  1. Our problems… • Pretty big team (around 30 in development)

    • Tightly bound code • Enhancement work & New Projects going on at the same time; including rolling maintenance • Support of legacy, kinda-legacy and new code
  2. Importance of the full-stack being JavaScript… • Back-end folks under

    a completely different team and in a different space • Needed tooling that could be managed by our front-end teams
  3. Maintainability • jQuery UI Widget Factory • Linting, Testing and

    Style Guide • Handlebars templates, Sass & Compass Component based architecture
  4. Two Unique Workflows 1. Testing cycle, hot fixes, etc. 2.

    New and Enhancement efforts Both workflows use common components but the approach is distinctly different.
  5. Testing cycle, hotfixes, etc. grunt preview • Reverse proxy against

    25+ environments • Live data sources • Ability to localize any asset or data response • Selective compilation • Source maps to aid in debugging
  6. • Rapid development of components & layouts • Live previews

    that can be developed quickly • Living Style Guide • Yo for scaffolding New and Enhancement efforts grunt local
  7. Intelligent build system • Selective build for faster build times

    • Several steps managed by one main task • JSHint, QUnit, Uglify, Sass, and image optimization • Dependencies • Sass • JS with Uglify Automate as much as possible