Deploying a Drupal website

Jan Duprez
Drupal
server
deploy
LAMP
phpMyAdmin
SSH
FTP
LInux
Apache
PHP
MySQL
hosting

Grunt (http://gruntjs.com/) is een JavaScript task runner. Het voert taken al minification, CSS preprocessing, unit testing, linting, enz uit.

Het werkt vanuit de terminal bovenop Node.js 

Software installeren (ubuntu) 

Nodejs

Om de laatste versie van de software te installeren moet er een repository toegevoegd worden:

sudo add-apt-repository ppa:chris-lea/node.js sudo apt-get update sudo apt-get install nodejs

Grunt

Installatie van grunt is mogelijk via npm. Het pakket om te installeren is `Grunt`

sudo npm install grunt sudo npm install -g grunt-cli

Aan de slag

Om te beginnen heeft grunt twee bestanden nodig:

  • package.json: dit bestand wordt door npm gebruikt om metadata voor projecten gepubliceerd als npm modules. In dit bestand maak je een opsomming van de plugins als afhankelijkheden voor jouw project.
  • Gruntfile: dit bestand krijgt de naam Gruntfile.js of Gruntfile.coffee en wordt gebruikt om de grunt plugins te laden of taken te definiëren.

Taken definiëren en uitvoeren

Als grunt geïnstalleerd is kunnen er takken uitgevoerd worden. Taken kunnen gedefinieerd worden via de Gruntfile die in de root van je project staat (samen met de package.json)

module.exports = function(grunt) { grunt.initConfig({ lint: { all: ['js/*.js'] }, concat: { 'build/pointer.js': [ 'js/libs/modernizr-touch.js', 'js/gesture.js', 'js/doubletap.js', 'js/longpress.js', 'js/scale.js'] }, min: { 'build/pointer.min.js': ['build/pointer.js'] }, }); grunt.registerTask('default', 'lint concat min'); };

Om taken uit te voeren, voer je `grunt`uit in de terminal. De default taak zal gerund worden. Om een specifieke taak uit te voeren kan je een argument meegeven aan grunt.

In bovenstaand voorbeeld zal de default taak de subtaken lint, concat en minify uitvoeren. Elke subtaak wordt uitgevoerd door een plugin en niet door Grunt zelf (het is ten slotte een task runner)

 

Grunt Plugins Installeren

Elke grunt plugin voert één taak uit. Taken kunnen sequentieel uitgevoerd worden. Elke taak neemt iets als input en genereert (meestal) output. Door taken te combineren verkrijg je het gewenste resultaat.

Installeer grunt plugins door de gruntfile aan te passen of via de terminal:

npm install grunt-contrib-uglify 

Eens geïnstalleerd (in de node_modules folder), breidt de gruntfile uit om de nieuw geïnstalleerde plugin bekend te maken.

grunt.loadNpmTasks('grunt-contrib-uglify');

Plugins kan je vinden op https://npmjs.org/

In latere versies van grunt zal het mogelijk zijn om taken te koppelen (zoals bij jQuery) zodat de tussenin gegenereerde bestanden overgeslagen kunnen worden bij het sequentieel uitvoeren van taken.

Bronnen

Grunt for People Who Think Things Like Grunt are Weird and Hard

Populaire blogposts
Drupal Mythes
Wat betekent Drupal 8 voor uw business?
Schrijven voor het web met de juiste keywords, gebruik Google Keyword Planner
Fairtrade Belgium bouwt eigen subsites
Is branding enkel het logo van mijn bedrijf?