mettre à jour automatiquement la version de package.json

Avant de lancer une petite version et de la marquer, j’aimerais mettre à jour le package.json pour refléter la nouvelle version du programme.

Est-il possible d’éditer automatiquement le fichier package.json ?

Est-ce que l’utilisation d’un git pre-release hook aide?

npm version est probablement la bonne réponse. Juste pour donner une alternative, je recommande grunt-bump . Il est maintenu par l’un des gars d’angular.js.

Usage:

 grunt bump >> Version bumped to 0.0.2 grunt bump:patch >> Version bumped to 0.0.3 grunt bump:minor >> Version bumped to 0.1.0 grunt bump >> Version bumped to 0.1.1 grunt bump:major >> Version bumped to 1.0.0 

Si vous utilisez grunt de toute façon, cela pourrait être la solution la plus simple.

Bonne réponse

Pour ce faire, juste le npm version patch =)

Mon ancienne réponse

Il n’y a pas de crochet de pre-release origine dans git . Au moins, l’ man githooks ne le montre pas.

Si vous utilisez git-extra ( https://github.com/visionmedia/git-extras ), par exemple, vous pouvez utiliser un hook de pre-release implémenté, comme vous pouvez le voir sur https: // github.com/visionmedia/git-extras/blob/master/bin/git-release . Il ne faut qu’un fichier exécutable .git/hook/pre-release.sh qui édite votre fichier package.json . La validation, le push et le tagging seront effectués par la commande git release .

Si vous n’utilisez aucune extension pour git , vous pouvez écrire un script shell (je l’ git-release.sh ) et vous pouvez l’ git-release.sh pour git-release.sh avec:

git config --global alias.release '!sh path/to/pre-release.sh $1'

Vous pouvez, par contre, utiliser la git release 0.4 qui exécutera path/to/pre-release.sh 0.4 . Votre script peut éditer package.json , créer le tag et le pousser sur le serveur.

C’est ce que je fais normalement avec mes projets:

 npm version patch git add *; git commit -m "Commit message" git push npm publish 

La première ligne, le npm version patch , augmentera la version du correctif de 1 (xx1 à xx2) dans package.json . Ensuite, vous ajoutez tous les fichiers – y compris package.json qui à ce moment-là a été modifié. Ensuite, les commandes habituelles git commit et git push , et enfin npm publish pour publier le module.

J’espère que cela a du sens…

Merc.

Pour donner une approche plus actuelle.

package.json

  "scripts": { "eslint": "eslint index.js", "pretest": "npm install", "test": "npm run eslint", "preversion": "npm run test", "version": "", "postversion": "git push && git push --tags && npm publish" } 

Ensuite, vous l’exécutez:

 npm version minor --force -m "Some message to commit" 

Qui va:

  1. … faire des tests …

  2. changez votre package.json en une version mineure suivante (ex: 1.8.1 à 1.9.0)

  3. pousser vos changements

  4. créer une nouvelle version de tag git et

  5. publiez votre paquet npm.

--force est de montrer qui est le patron! Blague à part voir https://github.com/npm/npm/issues/8620

En plus de la npm version vous pouvez utiliser l’ --no-git-tag-version si vous voulez un bump de version mais pas de tag ou un nouveau commit:

 npm --no-git-tag-version version patch 

https://docs.npmjs.com/cli/version

J’utilise husky et git-branch-is :

 "scripts": { ... "postmerge": "(git-branch-is master && npm version minor || (git-branch-is dev && npm --no-git-tag-version version patch)", ... }, 

En savoir plus sur la version npm

Webpack ou Vue.js

Si vous utilisez webpack ou Vue.js, vous pouvez l’afficher dans l’interface utilisateur en utilisant Auto inject version – Webpack plugin

NUXT

Dans nuxt.config.js :

 var WebpackAutoInject = require('webpack-auto-inject-version'); module.exports = { build: { plugins: [ new WebpackAutoInject({ // options // example: components: { InjectAsComment: false }, }), ] }, } 

Dans votre template par exemple dans le pied de page:

 

All rights reserved © 2018 [v[AIV]{version}[/AIV]]