NPM et les paramètres nommés

Une petite astuce bien sympathique autour de NPM.

Imaginons que nous avons le package.json suivant:

{
  "name": "npm-named-argument",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "say": "echo Hello && exit 0",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

Si nous l'exécutons, nous obtenons alors:


Ce qui est logique

Maintenant, imaginons que nous aimerions utiliser un paramètre de CLI dans notre NPM run-script (ici, un nom par exemple).

Rien de plus simple, mettez %npm_config_username" dans votre run-script:

{
  "name": "npm-named-argument",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "say": "echo Hello %npm_config_username% && exit 0",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

Vous pourrez alors ajouter le paramètre CLI "--username" et afficher ainsi le nom:



Cette astuce est intéressante, dans le cas où nous aimerions simplement via la ligne de commande par exemple fournir le nom de l'environnement pour lancer les tests, le déploiement etc ...

En somme, il suffit de nommer ce paramètre %npm_config_XXXXX%

Mais nous pouvons aller plus loin: nous pouvons récupérer des valeurs de notre package.json !!

En effet, si nous faisons %npm_package_name%, nous allons récupérer la propriété "name" de notre package.json:

{
  "name": "npm-named-argument",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "say": "echo Hello %npm_package_name% && exit 0",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}



En somme, il suffit de nommer ce paramètre %npm_package_XXXXX%
Et il est à noter que nous pouvons accéder à des sous-propriétés (le tout, séparé par des "_").


Petit piège toutefois pour l'ensemble de ce que nous avons vu: ce que je vous donne ne fonctionne que sous Windows.

En effet, cela se base sur les variables d'environnement.

Ainsi les variables:
  • %npm_config_username%
  • %npm_package_name%

Doivent être remplacé par:

  • $npm_config_username
  • $npm_package_name
Enjoy !

Commentaires

Posts les plus consultés de ce blog

ISO: liens & outils utiles

NodeJs et SSL: une petite analyse

Créer sa commande slack en quelques minutes