scripts librerias example dependencias actualizar git node.js npm githooks

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

docs.npmjs.com/cli/version


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á:

  1. ... ejecutar pruebas ...

  2. cambie su package.json a una próxima versión menor (ej .: 1.8.1 a 1.9.0)

  3. impulsa tus cambios

  4. crear una nueva versión de etiqueta git y

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