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.jsona 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.