Desarrollo y operaciones

Herramientas de versionado y paquetes

Las dudas de versiones y dependencias cruzan ecosistemas constantemente: si un rango npm realmente coincide con la versión que vas a publicar, si el campo exports de un package.json resuelve como espera tu bundler, o cómo queda una dependencia Maven traducida al DSL de Gradle. Esta página reúne herramientas de versiones y rangos para SemVer, PEP 440 y otros gestores de paquetes, además de editores para package.json y su mapa de exports.

Usa la Calculadora SemVer para comparar versiones y probar rangos npm directamente, y comprobador de versiones PEP 440 para el esquema propio y más estricto de Python, ya que ambos no son idénticos. El Visualizador de exports de package.json prueba subrutas exports contra la resolución de import y require, algo que un visor JSON normal no muestra. Maven a Gradle y Reglas de versiones de otros ecosistemas para Composer, NuGet, Cargo y Go completan el trabajo entre ecosistemas, todo de forma local.

8 herramientas

Preguntas frecuentes sobre herramientas de Versioning & Packages

¿Por qué un rango de versión npm coincide con una versión que no esperaba?

Rangos como ^1.2.3 o ~1.2.3 siguen reglas concretas de SemVer sobre qué partes pueden cambiar, y es fácil malinterpretar cómo un rango caret trata una versión 0.x de forma distinta a una 1.x. La Calculadora SemVer prueba una versión contra un rango directamente para confirmar la coincidencia en lugar de razonarlo a mano.

¿Es válida una versión de Python como 1.0.0rc1, y cómo se ordena?

Es válida según PEP 440 como pre-release, y se ordena antes de la versión final 1.0.0. comprobador de versiones PEP 440 normaliza y ordena una lista de versiones de Python y las comprueba contra cadenas de restricción, más fiable que compararlas como texto plano a mano.

¿Por qué los exports de package.json funcionan con import pero no con require, o al revés?

El campo exports puede mapear archivos distintos a las condiciones import y require, y un desajuste, como un archivo solo CommonJS mapeado a una condición import, rompe la resolución de una sin afectar a la otra. El Visualizador de exports de package.json prueba la resolución de subrutas contra ambas condiciones antes de publicar.