npmversion: comment faciliter le "bumping" et l'usage de "npm version"

Lors de mes deux précédents articles, je vous avais présenter la commande npm "version", qui permet de faire l'équivalent du bumping.

Pour rappel, mes deux articles:

Après quelques semaines d'utilisations, j'ai pu m'apercevoir des points suivants:
  • Soit nous avons un commit et un tag git, soit aucun des deux: nous ne pouvons pas avoir l'un ou l'autre
  • L'option "sign-git-tag" pose parfois problème lors du setupage de son environnement (surtout sur un poste Windows)
  • Le bumping avec un "preid" pourtant gérer dans la norme semver est ici ignorée

Du coup, je me suis fait un petit outils s'appelant "npmversion" permettant de répondre à mes besoins sur la gestion d'un projet, comme:
  • Faire un commit git, un tag git, les deux ou aucun
  • Faire un bumping avec gestion du preid et du prenum
  • Faire la révocation du preid
  • Avoir un fichier .npmrc pour faciliter la configuration
    • Des messages de commit / tag
    • Du preid par défaut
    • Du niveau de bumping / d'incrémentation par défaut
  • Avoir également un pre et post commandes
  • ...

Le projet peut se trouver ici: https://www.npmjs.com/package/npmversion




Et voici un exemple d'utilisation dans nos projets:

{
  "name": "my-app",
  "version": "0.0.1",
  "scripts": {
      "test": "node ./node_modules/mocha/bin/mocha --recursive --ui bdd --colors ./test",
      
      "bump-release": "test && npmversion --unpreid --git-push",
  
      "bump-major": "test && npmversion --increment major --git-push",
      "bump-minor": "test && npmversion --increment minor --git-push",
      "bump-patch": "test && npmversion --increment major --git-push",
      
      "bump-major-beta": "npmversion --increment major --preid beta --nogit-tag --git-push",
      "bump-minor-beta": "npmversion --increment minor --preid beta --nogit-tag --git-push",
      "bump-patch-beta": "npmversion --increment major --preid beta --nogit-tag --git-push",
      
      "prenpmversion": "echo \"Pre npmversion\"",
      "postnpmversion": "echo \"Post npmversion\""
  }
}
{
    "force-preid": false,
    "nogit-commit": false,
    "nogit-tag": true,
    "git-push": false,
    "git-commit-message": "Release version: %s",
    "git-tag-message": "v%s",
    "increment": "minor"
}


J'espère que cela peut vous être utile

Cordialement

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