Yo!

Génère moi un Générateur
Wassim Chegham
aka — Maneki Nekko

ECMAScript Jedi
 Technical Lead at           


sako ?










The queen's body guard 

of the yeoman 

of the guard



  • yo : génère une arborescence d'application web 
  • grunt : automatise les tâches du build/déploiement
  • bower : installe les dépendances (ex: jQuery...)  

   


npm install -g yo npm install -g generator-webapp


yo generators

pourquoi ?




  • Démarrer un projet en un clin d'oeil 
  • Maitriser la structure de nos projets
  • Maitriser nos outils de dev, build et test
  • Imposer des standards & des best practices




préparation

Récupération du modèle de générateur


npm install -g generator-generator



Création du répertoire du projet*

mkdir generator-breizhcamp && cd $_

Le répertoire du projet doit absolument s'appeler generator-nom-generator

Installation du Yo Generator


yo generator

L'arborescence d'un générateur Yeoman


index.js est le point d'entrée


templates est le répertoire de travail





Prêts ?


 

Ajout des fichiers dans le répertoire templates


convention : préfixez les fichiers modèles par _

(astuce)



Associez le générateur à NPM
npm link


Testez le générateur
yo breizhcamp

Ajout des actions dans index.js



Plusieurs actions...


Yo

Demande d'informations à l'utilisateur


YO



Plusieurs type de questions

  • Case à cocher
  • Choix multiples
  • Liste
  • Mot de passe
  • Confirmation
  • ...etc.


 Pour plus d'informations → Inquire.js

Modification des fichiers modèles


Underscore.js FTW !!

Création des répertoires nécessaires


 this.mkdir(directory);

Yo


Copie des fichiers statiques


 this.copy(source, destination);

Copie des fichiers modèles


 this.template(source, destination, context_underscore);

Copie en masse...


Installation des dépendances bower


L'installation se fait à la fin du processus !


Aller plus loin



  • Sous-Générateurs
  • Génération des tâches Grunt & Gulp
  • Téléchargement des fichiers binaires


Links :

Yeoman is a project developed by

Addy Osmani · Sindre Sorhus · Pascal Hartig · Stephen Sawchuk · Simon Boudrias · Brian Ford · Eddie Monge · Paul Irish · Hemanth.HM · Revath S Kumar · Jimmy Moon · Frederick Ros · Mickael Daniel · Eric Bidelman and the Yeoman Community.








/merci

Yeoman Generators

By Wassim Chegham

Yeoman Generators

Cette présentation intitulée "YO! Génère moi un Générateur" a été donnée lors du BreizhCamp 2014. Voici les sources de l'application développée pour la démo : https://github.com/manekinekko/generator-breizhcamp

  • 6,137