Méta-paquets
NPM
Le problème
- Beaucoup de modules NPM/projets NodeJS
- JavaScript/NodeJS évoluent trop vite
- Fastidieux de maintenir tous les projets/modules à jour
Quelques exemples
Exploiter les nouveautés
- Templates GitHub (ex, awesome gh tpls)
- Gestion des versions de Node (CI, package)
Faciliter son dev
- configuration du linter (ESLint)
- config unifiée des éditeurs (.editorconfig)
- réglage de la tranpilation (Babel)
- gérer la qualité du code (Coveralls, Code Climate, GreenKeeper)
Gérer les informations
répétitives
- Licences.
- Liens, adresses mail, identités.
Mon constat
«Embrasser les nouveautés/évolutions de
mon environnement de développement
sur tous mes modules prendrait trop de temps.»
Résultat
- Des ajouts au grés des mises à jour
- Des oublis, des erreurs
- Une grande disparité de mes environnements de dev
Approches possibles
Un simple script ?
- Tout ou rien, peu pratique
- Nécessite de cloner tous ses repos
Outils de scaffolding ?
- Peu pratique pour l'éxistant
- Beaucoup de partis pris
- Difficile à maintenir
- Nécessite une installation globale
Que faire ?
Metapak
Objectifs
- simplicité: setup en une commande
- souplesse: pas de figure imposée
- transversal: modifier les informations générales à tous les projets/modules JavaScript quels qu'ils soient
Hands-on
Créer son module `metapak` en 5mn
Avantages
- Installé: dépendence clairement exprimée,
pas d'install globale, 0 setup pour les
contributeurs. - Versionné: possibilité de mettre à jour
au compte goutte. - Configurable: créer des configurations
spécifiques : frontend, cli etc...
Inconvénients
- une modification = deux commits,
une version - seuil de rentabilité à 5-10 projets
Merci !
@nfroidure sur Twitter et GitHub