Wilfried Moulin v1.0, 2015-12-15
joobster est un booster de projet JavaScript (EcmaScript pour les puristes) et permet de masquer la complexité des différentes tâches nécessaires aux différentes phases de développement, en se rapprochant de la philosophie maven
.
Il faut au préalable installer NodeJs.
$ npm install -g joobster
Installer joobster de manière globale:
- Se placer dans le dossier de joobster
- Lancer la commande
$ npm install -g
Installer joobster de manière locale:
- Se placer dans le dossier de joobster
- Lancer la commande
$ npm install
Après l'installation, les commandes joobster
et jsr
(alias de la première) sont accessibles en globale dans la console nodeJs.
Une aide est fournie en tapant la commande, donne la description de toutes les taches possibles.
$ jsr --help
Les options suivantes sont alors proposées:
Option | Rôle |
---|---|
-h, --help | Affiche l'aide |
-V, --version | Affiche la version du builder |
-l, --log | Initialise le niveau des logs (error) |
-d, --dir | Permet d'indiquer le répertoire du projet des tâches à lancer |
-f, --files | Permet de lancer les tâches sur un filter donné |
Pour lancer joobster depuis une install locale, une fois placé dans le répertoire de joobster, voici un exemple de commande :
$ node ./src/bosster <tache> -l debug -d 'path/to/project/dir'
Soit on utilise la configuration par défaut et le projet doit avoir une arboresence pârticulière, soit on paramètre joobster en ajoutant le fichier joobster.json à la racine du projet afin de modifier les valeurs par défaut.
L'objet de configuration par défaut :
{
projectDir : "./",
base : "src",
baseTst : "tst",
dir : "js",
fileFilter : "**/*.js",
outdir : "dist",
tmpDir : "tmp",
outdirMap: "maps",
compile : {
presets: [presetsObject["es2015"]],
}
}
project
| + src
| | + js
| + tst
| | + js
Il va fournir des tâches se rapprochant de la philosophie maven
pour simplifier et pérenniser la gestion des dépendances en les fixant (sans ^, ~ ou *) afin de pérenniser les versions.
Tâche | Rôle | Dépendances |
---|
Tâche | Rôle | Dépendances |
---|---|---|
clean:js | Suppression des fichiers de transpilation (dist/js et dist/maps/js) avec Babel | |
compile:js | Transpilation JavaScript -> dist/js et dist/maps/js | clean:js |
validate:js | Lancement de l'analyse EsLint | |
test:js | Lancement des tests unitaires (test/js) basé sur Mocha | |
watch:js | Lancement d'un watcher sur les fichiers js pour transpilation |
Tâche | Rôle | Dépendances |
---|---|---|
clean:ts | Suppression des fichiers de transpilation (dist/ts et dist/maps/ts | |
compile:ts | Transpilation JavaScript -> dist/ts et dist/maps/ts | clean:js |
validate:ts | Lancement de l'analyse TsLint | |
test:ts | Lancement des tests unitaires (test/ts) basé sur Mocha | |
watch:ts | Lancement d'un watcher sur les fichiers js pour transpilation |
Tâche | Rôle | Dépendances |
---|
Tâche | Rôle | Dépendances |
---|