Build system for our sites. When invoked, it performs so called 'needles', which contain a series of tasks such as link checking, javascript checking, css minification, ...
It is build on top of the wonderful grunt.
Since Voodoo was primary build for our own projects, the default voodoo.js config file (this is actually just the grunt config.js file) will execute a series of tasks tailor made for our framework. This following needles are stung:
task.registerTask("default", "clean lint:files concat min");
- the clean needle, removing
assets/js/app.jsandassets/js/libs.jsif they existed from a previous run - the lint needle, checking all
*.jsfiles insideassets/js/(NOT inside the subsequentlibsfolder) against jshint. Options are set in thevoodoo.js - the concat needle, concatenating
assets/js/*.jsintoassets/js/app.js(which is why we needed the clean needle), and allassets/js/libs/*.jsfiles intoassets/js/libs.js - the min needle, minifying the previous two
jsfiles - the pulverize needle, squeezing your images to save bytes
Installation is through npm, and straightforward:
npm install -g voodoo
Run voodoo -h afterwards to get more help.
Inside your website directory, just execute voodoo without params to perform the basic tasks, as predefined for our framework (see config.js inside the repo). The default voodoo.js will be created at the path where you execute the command, and is very similar to the gruntfile found in grunt.
Optionally, you can run voodoo -g or voodoo --generate to create the default voodoo.js file without running voodoo itself. This gives you the change to first change the config.
- -b, --base - working directory for your site (where
assetsfolder is in ) - -v, --verbose - verbose output
- -f, --force - a way to force your way past warnings. Want a suggestion? Don't use this option, fix your code
- -g, --generate - generate a default
voodoo.jsfile