Pré-requis : avoir installé Yarn.
Qu'entend-on par booster la commande Yarn ?
Par défaut, yarn dispose déjà de paramètres à la ligne de commande. Celui le plus utilisé étant le paramètre run
puisqu'il permet d'exécuter les scripts déclarés dans le fichier package.json
, par exemple :
yarn run mon_script
Or, ce paramètre ne permet pas d'enchaîner les appels. En comparaison, avec Maven, il est possible d'écrire :
mvn clean package deploy
Mais avec Yarn il faudra écrire :
yarn run clean
yarn run package
yarn run deploy
Ce qui est fastidieux.
Quelle solution propose-t-on ?
Tout simplement d'ajouter à notre path un petit script baptisé yr qui, lorsque l'on va taper :
yr clean package deploy
Va se charger de décomposer les arguments en appels successifs :
yarn run clean
yarn run package
yarn run deploy
En parallèle, le script reconnaîtra si l'argument est un paramètre natif de yarn ou un élément du pacakge.json et dans le premier cas, transférera l'argument à Yarn.
Par exemple :
yr install gulp
Invoquera :
yarn install gulp
Comment l'installer ?
- Rendre Yarn accessible depuis votre PATH système.
- Ajouter au PATH le script est disponible en téléchargement ICI.
Pour information, le contenu du script est le suivant :
#!/usr/bin/env bash
PARAM="$*"
## Add the yarn commands
YARN_COMMANDS=" access add autoclean bin cache check config create exec generate-lock-entry generateLockEntry global help import info init install licenses link list login logout node outdated owner pack publish remove run tag team unlink upgrade upgrade-interactive upgradeInteractive version versions why workspace workspaces "
is_yarn_command() {
isCommand=`echo "$YARN_COMMANDS" | grep " $1 "`
if [ "$isCommand" == "" ]; then
echo "false"
else
echo "true"
fi
}
isYarnCommand=`is_yarn_command $1`
if [ "$isYarnCommand" == "true" ]; then
yarn $*
else
for param in $PARAM
do
yarn run $param
done
fi