\nTeam Lead:<\/strong> You have some experience working with Node.js modules like Yeoman, right?<\/p>\nMe:<\/strong> Yeah, I know a bit.<\/p>\nTeam Lead:<\/strong> I think using Yeoman here would save us a bunch of time on creating new pages. Do you think you can manage something like that?<\/p>\n<\/blockquote>\nWell, that was my first day; I barely knew where my seat was. However, I remember clearly what I was thinking, and I didn\u2019t understand how Yeoman could help here.<\/p>\n
For me, and for many others, Yeoman was a tool to generate a full working application, from zero to hero, in no more than two seconds. It was not for adding parts to an existing application.<\/p>\n
I was completely wrong. Allow me to share with you how we created a Node.js module at MyHeritage that extends the functionality of Yeoman to save us tons of time on everyday tasks.<\/p>\n
The Problem<\/h3>\n
Creating new pages in MyHeritage used to be a challenging task. Each new page that was created demanded about two days of work to prepare everything, including asset management, a server-side component and a client-side bootstrap of an application. In short: a large number of files.<\/p>\n
Most developers do not create new pages on a regular basis. Before the real work could even begin, a lot of time was required just to understand how to create the new page. Then, once the page was created and the work was \u201cdone\u201d, there were still hours of time remaining to debug anything that didn\u2019t work.<\/p>\n
Two days was just way too much time to invest in a simple task like that.<\/p>\n
A Ray of Hope<\/h3>\n
A couple of months after my conversation with our team lead, the toll of creating new pages had become significantly greater and we couldn\u2019t continue down that path. We knew that an immediate solution was necessary and that it must be simple, easy to maintain, and most obviously, very fast to use. <\/p>\n
First, we broke down the problems associated with creating a new page. The process required a lot of steps, including routing configurations and translations services, running terminal commands for creating certain files (like A\/B tests or Sass files) and even running some Gulp tasks (like compiling Sass or creating sprites).<\/p>\n
At this point we were certain that extending Yeoman would serve us best, but we still had to figure out how it could satisfy all of these needs while still maintaining its core simplicity and ease of use.<\/p>\n