actualizar la versión package.json automáticamente
Antes de hacer un lanzamiento pequeño y etiquetarlo, me gustaría actualizar package.json para reflejar la nueva versión del programa.
¿ Hay alguna manera de editar el archivo package.json
automáticamente?
¿Usar una git pre-release hook
ayuda?
Respuesta correcta
Para hacerlo, simplemente npm version patch
=)
mi vieja respuesta
pre-release
Originalmente no hay ningún gancho en git
. Al menos, man githooks
no lo demuestra.
Si está utilizando git-extra
( https://github.com/visionmedia/git-extras ), por ejemplo, puede utilizar un pre-release
enlace que implementa, como puede ver en https://github.com/visionmedia/ git-extras/blob/master/bin/git-release . Sólo se necesita un .git/hook/pre-release.sh
archivo ejecutable que edite su package.json
archivo. La confirmación, el envío y el etiquetado se realizarán mediante el git release
comando.
Si no estás usando ninguna extensión para git
, puedes escribir un script de shell (lo llamaré git-release.sh
) y luego puedes asignarle un alias git release
con algo como:
git config --global alias.release '!sh path/to/pre-release.sh $1'
Luego puede usar git release 0.4
el que se ejecutará path/to/pre-release.sh 0.4
. Su secuencia de comandos puede editar package.json
, crear la etiqueta y enviarla al servidor.
npm version
es probablemente la respuesta correcta. Solo para dar una alternativa, recomiendo grunt-bump . Lo mantiene uno de los chicos de angular.js.
Uso:
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 de todos modos estás usando gruñido, podría ser la solución más simple.
Esto es lo que hago normalmente con mis proyectos:
npm version patch
git add *;
git commit -m "Commit message"
git push
npm publish
La primera línea, npm version patch
aumentará la versión del parche en 1 (xx1 a xx2) en package.json
. Luego agrega todos los archivos, incluido package.json
el que en ese momento se ha modificado. Luego lo de siempre git commit
y git push
, y por último npm publish
publicar el módulo.
Espero que esto tenga sentido...
Mercenario.