Avant de faire une petite version et de l'étiqueter, j'aimerais mettre à jour le package.json pour refléter la nouvelle version du programme.
Existe-t-il un moyen de modifier package.json
automatiquement le fichier ?
Serait en utilisant une git pre-release hook
aide?
Réponses:
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:
Si vous utilisez de toute façon grunt, cela pourrait être la solution la plus simple.
la source
npm version
?npm --no-git-tag-version version patch
.Bonne réponse
Pour ce faire, il suffit de
npm version patch
=)Ma vieille réponse
Il n'y a pas de
pre-release
crochet à l'originegit
. Au moins,man githooks
ne le montre pas.Si vous utilisez
git-extra
( https://github.com/visionmedia/git-extras ), par exemple, vous pouvez utiliser unpre-release
hook qui est implémenté par celui-ci, comme vous pouvez le voir sur https://github.com/visionmedia/ git-extras / blob / master / bin / git-release . Il suffit d'un.git/hook/pre-release.sh
fichier exécutable qui édite votrepackage.json
fichier. La validation, le push et le marquage seront effectués par lagit release
commande.Si vous n'utilisez aucune extension pour
git
, vous pouvez écrire un script shell (je le nommegit-release.sh
) et vous pouvez l'aliasergit release
avec quelque chose comme:git config --global alias.release '!sh path/to/pre-release.sh $1'
Vous pouvez, que, utiliser
git release 0.4
qui exécuterapath/to/pre-release.sh 0.4
. Votre script peut modifierpackage.json
, créer la balise et la pousser vers le serveur.la source
git release
ne met pas à jour le package.json en conséquence ... github.com/visionmedia/git-extras/issues/150 : D.git/hooks/pre-release.sh
contenant:echo -e "{\n\"version\": "$1"\n}" > package.json
et essayez d'utilisergit release $version
npm version patch
ounpm version 0.3.1
le résoudra! Pourriez-vous mettre à jour votre réponse en conséquence? ty !!C'est ce que je fais normalement avec mes projets:
La première ligne
npm version patch
augmentera la version du correctif de 1 (xx1 à xx2) danspackage.json
. Ensuite, vous ajoutez tous les fichiers - y compris ceuxpackage.json
qui ont été modifiés à ce moment-là. Ensuite, l'habituelgit commit
etgit push
, et enfinnpm publish
pour publier le module.J'espère que cela a du sens...
Merc.
la source
npm version patch
le commet-il lui-même; cependant, pour pousser la balise vers github, je pense que vous devez également le fairegit push --tags
.npm version patch
le numéro de version etnpm version patch
ne commet rien pour moi.npm version
.Pour donner une approche plus actuelle.
package.json
Ensuite, vous l'exécutez:
Qui va:
... exécuter des tests ...
passez
package.json
à une version mineure suivante (par exemple: 1.8.1 à 1.9.0)pousser vos changements
créer une nouvelle version de balise git et
publiez votre package npm.
--force
c'est montrer qui est le patron! Blagues à part voir https://github.com/npm/npm/issues/8620la source
"deploy-minor": "npm version minor --force -m \"version %s\""
que tout ce dont vous devez vous souvenir estnpm run deploy-minor
:)En complément,
npm version
vous pouvez utiliser l'--no-git-tag-version
indicateur si vous voulez un changement de version mais pas de balise ou un nouveau commit:https://docs.npmjs.com/cli/version
la source
Si vous utilisez du fil, vous pouvez utiliser
Cela incrémentera la
package.json
version par patch(0.0.x)
, le commit et le marquera avec le formatv0.0.0
De même, vous pouvez modifier la version mineure ou majeure en utilisant
--minor
ou--major
Lorsque vous poussez vers git, assurez-vous de pousser également les balises avec
--follow-tags
Vous pouvez également créer un script pour cela
Exécutez-le simplement en tapant
yarn release-it
la source
J'utilise husky et git-branch-is :
À partir de Husky v1 +:
Avant Husky V1:
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 la version Auto inject - plugin Webpack
NUXT
Dans
nuxt.config.js
:À l'intérieur de votre
template
par exemple dans le pied de page:la source
postmerge
, mais il est maintenantpost-merge
dans lahusky: {hooks:{}}
configuration. Quel problème avez-vousgit-branch-is
?Je veux clarifier les réponses à cette question.
Même s'il y a des réponses ici qui s'attaquent correctement au problème et fournissent une solution, ce ne sont pas les bonnes. La bonne réponse à cette question est d'utiliser
npm version
Oui, ce que vous pouvez faire pour que cela se produise est d'exécuter la
npm version
commande lorsque cela est nécessaire, vous pouvez en savoir plus à ce sujet ici version npm , mais l'utilisation de base seraitnpm version patch
et il ajouterait le 3e ordre de chiffres sur votrepackage.json
version (1.0. X )Vous pouvez configurer pour exécuter la
npm version
commande sur le hook de pré-version, selon vos besoins, mais cela dépend si c'est ce dont vous avez besoin ou non dans votre canal CD / CI, mais sans lanpm version
commande, ungit pre-release
hook ne peut rien faire "facilement" avec lepackage.json
La raison pour laquelle
npm version
la réponse est correcte est la suivante:package.json
il utilisenpm
s'il utilise,npm
il a accès au fichiernpm scripts
.npm scripts
il a accès à lanpm version
commande.Les autres réponses dans lesquelles d'autres outils sont proposés sont incorrectes.
gulp-bump
fonctionne mais nécessite un autre package supplémentaire qui pourrait créer des problèmes à long terme (point 3 de ma réponse)grunt-bump
fonctionne mais nécessite un autre package supplémentaire qui pourrait créer des problèmes à long terme (point 3 de ma réponse)la source
Tout d'abord, vous devez comprendre les règles de mise à niveau du numéro de version. Vous pouvez en savoir plus sur la version sémantique ici.
Chaque version aura une version xyz où elle définit à des fins différentes, comme indiqué ci-dessous.
Pour exécuter les scripts, vous pouvez le définir dans votre package.json.
Dans votre terminal, il vous suffit d'exécuter npm en fonction de vos besoins, comme
Si vous l'exécutez dans git repo, la version par défaut de git-tag-version est true et si vous ne souhaitez pas le faire, vous pouvez ajouter la commande ci-dessous dans vos scripts:
par exemple:
"npm --no-git-tag-version version major && ng build --prod"
la source
J'ai créé un outil qui peut effectuer un contrôle de version sémantique automatique basé sur les balises dans les messages de validation, connus sous le nom de types de changement. Cela suit de près la convention de message de validation angulaire ainsi que la spécification de versioning sémantique.
Vous pouvez utiliser cet outil pour changer automatiquement la version dans package.json à l'aide de l'interface de ligne de commande npm (ceci est décrit ici ).
En outre, il peut créer un journal des modifications à partir de ces validations et dispose également d'un menu (avec un correcteur orthographique pour les messages de validation) pour créer des validations en fonction du type de modification. Je recommande vivement de le vérifier et de lire des documents pour voir tout ce qui peut être accompli avec.
J'ai écrit l'outil parce que je n'ai rien trouvé qui convenait à mes besoins pour mon pipeline CICD pour automatiser la gestion des versions sémantiques. Je préfère me concentrer sur les changements réels plutôt que sur ce que devrait être la version et c'est là que mon outil sauve la mise.
Pour plus d'informations sur la justification de l'outil, veuillez consulter ceci .
la source