git - librerias - actualizar la versión de package.json automáticamente
package.json install (5)
Antes de hacer un pequeño lanzamiento y etiquetarlo, me gustaría actualizar el paquete.json para reflejar la nueva versión del programa.
¿Hay alguna manera de editar el archivo package.json
automáticamente?
¿Sería útil usar un git pre-release hook
?
Como complemento de la npm version
, puede utilizar el indicador --no-git-tag-version
si desea un aumento de versión pero no una etiqueta o una nueva confirmación:
npm --no-git-tag-version version patch
Esto es lo que normalmente hago 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
que en ese momento se ha modificado. Luego, el habitual git commit
y git push
, y finalmente npm publish
para publicar el módulo.
Espero que esto tenga sentido...
Merc.
Para dar un enfoque más actualizado.
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"
}
Entonces lo ejecutas:
npm version minor --force -m "Some message to commit"
Que lo hará:
... ejecutar pruebas ...
cambie su
package.json
a una próxima versión menor (ej .: 1.8.1 a 1.9.0)impulsa tus cambios
crear una nueva versión de etiqueta git y
publica tu paquete npm.
--force
es mostrar quién es el jefe! Bromas aparte, ver https://github.com/npm/npm/issues/8620
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 está utilizando gruñidos de todos modos, podría ser la solución más simple.
Respuesta correcta
Para hacerlo, solo npm version patch
=)
Mi vieja respuesta
No hay ningún gancho de pre-release
originalmente en git
. Al menos, el man githooks
no lo muestra.
Si está usando git-extra
( https://github.com/visionmedia/git-extras ), por ejemplo, puede utilizar un pre-release
que implementa, como puede ver en https://github.com/visionmedia/git-extras/blob/master/bin/git-release . Solo se necesita un archivo ejecutable .git/hook/pre-release.sh
que edite su archivo package.json
. Commitir, empujar y etiquetar se realizará mediante el comando de git release
.
Si no está utilizando ninguna extensión para git
, puede escribir un script de shell (lo llamaré git-release.sh
) y luego puede alias para git release
con algo como:
git config --global alias.release ''!sh path/to/pre-release.sh $1''
Puedes, entonces, usar git release 0.4
que ejecutará path/to/pre-release.sh 0.4
. Su secuencia de comandos puede editar package.json
, crear la etiqueta e insertarla en el servidor.