In the end, I realized that a task-based build tool with built-in, commonly used tasks was the approach that would work best for me. Unfortunately, I couldn’t find a build tool that worked the way that I wanted. So I built one. — Ben Alman, 2012
• registerTask registers a sequence of tasks! • grunt calls default task grunt build calls build task • initConfig takes an object of task definitions • loadNpmTasks loads one installed task has to be defined in package.json!
Problem? Keep the server alive indefinitely. Note that if this option is enabled, any tasks specified after this task will never run. By default, once grunt's tasks have completed, the web server stops. This option changes that behavior.
• Install grunt-init with npm install -g grunt-init • Install the gruntplugin template with git clone git://github.com/gruntjs/grunt-init- gruntplugin.git ~/.grunt-init/gruntplugin • Run grunt-init gruntplugin in an empty directory.! • Run npm install to prepare the development environment.
Apples & Oranges • Code over configuration • Tasks run a sequence of methods • Methods don’t care about IO • Good amount of plugins, able to use unrelated modules • Configuration over code • Small, independent tasks, but with strong connection to IO • S**tload of plugins, a lot of them not really good • There might be a task for your need already there
node-task • https://github.com/node-task/spec • Common ground for both gulp and grunt • Uses best practices of both libraries • The only thing different will be the interface
• yeoman takes care about project scaffolding: installing best practices and common project standards by just one click! • plenty of official and community generators are out there! • overcomes blank page angst