Par exemple, est-ce que je peux utiliser Grunt lorsque j’intègre un site SPIP, dans mes plugins-squelettes et mes plugins-thèmes (découpage Z) ?
Carrément, Grunt c’est juste un automatiseur de tâches, comme il est JS, et utilise node, il a des affinités avec cet écosystème, mais on peut s’en servir pour n’importe quoi.
Ce qui est intéressant, c’est qu’une fois qu’on a compris comment ça marche, il y a très peu de choses à coder, à écrire. La plupart du temps ça se résume à un path d’entrée (avec du ’globbing’, comme dans zsh - « /repertoire//.js » = tous les fichiers js situés dans répertoire et les sous-répertoires), des options, et un path de sortie (si il y a écriture de fichiers).
Par exemple, pour le guide de style dont je parle plus haut, j’ai juste ajouté ça dans mon « gruntfile » :
styleguide : {
options : {
framework : {
name : ’styledocco’
},
name : ’Guide de style de mon appli’
/,template : {include : [’plugin.css’, ’app.js’]}/
},
doc_projet : {
files : {
’projet/dossier/documentation/’ :’projet/dossier/css’
}
}
et pour lancer la tâche : « grunt styleguide:doc_projet »
Pour faire des squelettes, oui, je pense qu’il doit y avoir des choses intéressantes : optimisation des images, génération automatique de sprite, génération de webfonts, vérification et validation du code JS, concaténation, copie, compression de fichiers etc...
Et si oui comment ?
Je ne sais pas ;) , il y a tellement de plugins, de possibilités, que ça doit partir du besoin. Si vous me donnez des cas concrets, je pourrais en dire plus :)
C’est quoi les trucs qui font braire lorsque tu fais des squelettes ou des thèmes ?
Les grandes étapes :
*Niveau Système :
– installer node.js
– installer l’interface cli de grunt ("npm install -g grunt-cli")
Niveau Projet :
– créér un fichier ’package.json’ à la raçine du projet (le dossier de ton squelette, je dirais) : soit à la main, en copiant collant un truc trouvé en ligne, soit en tapant « npm init ». Ce fichier contiendra les dépendances et la description de ton projet grunt.
– installer grunt (et les plugins qui t’intéressent) : "npm install grunt —save-dev’. Le flag à la fin va dire à npm (node package manager) d’écrire la dépendance dans le fichier package.json.
L’installation va créer un répertoire node_modules à coté du fichier package.json. La plupart du temps, il faut dire au gestionnaire de source d’ignorer ce répertoire.
– créer un fichier Gruntfile.js (le plus simple est de recopier un exemple sur le site de grunt).
– modifier le Gruntfile.js en fonction de ses besoins et du projet.
Bref, l’automatisation d’un projet via grunt peut se résumer à 2 fichiers : le package.json et le Gruntfile.js. Sur la machine de quelqu’un qui a déjà node.js, il suffira juste de taper « npm install » dans le répertoire pour que toutes les dépendances, plugins et autres soient installés.
Pour démarrer :
▻http://gruntjs.com/getting-started
Les plugins :
▻http://gruntjs.com/plugins
[edit : comment on fait pour mettre du code dans seenthis ? là mon exemple de path avec globbing casse tout...]