Versioning & Packages

editor de package.json

Edita un manifiesto y localiza errores sin alterar el orden de scripts ni las condiciones de exports.

editor de package.json

Manifiesto de entrada

Resultado formateado

El manifiesto permanece en este navegador. No se consulta el registro ni se ejecutan scripts.

Ayuda de campos y límites

name identifica el paquete con reglas de nombres nuevos. Es opcional en proyectos locales.

Comprueba reglas integradas, nombres y versión raíz. Las configuraciones de otras herramientas se conservan sin validación especializada.

Un objeto, 100 000 unidades UTF-16, profundidad 100. Se rechazan enteros no seguros y desbordamientos. Las dependencias solo se comprueban como cadenas.

Grupos de dependencias

dependencies: 0 · devDependencies: 0 · peerDependencies: 0 · optionalDependencies: 0

No hay dependencias que mostrar.

Han cambiado la entrada o las opciones. Comprueba antes de exportar.

Un editor de package.json resulta útil al revisar conflictos de una fusión. Un documento puede ser JSON válido y aun contener nombres o tipos de valores inadecuados.

El ejemplo inicial es un proyecto privado. Revisa los cuatro grupos por separado: que un paquete aparezca en más de uno no implica que sobre.

Por qué usar este editor de package.json

Mantén el orden que tiene significado

Este editor de package.json solo ordena nombres dentro de dependencies, devDependencies, peerDependencies y optionalDependencies. Conserva campos superiores, scripts y condiciones exports para no cambiar la prioridad de resolución al limpiar una diferencia.

Cuatro grupos de dependencias se ordenan internamente mientras las ramas exports permanecen fijas.

Compara antes de sustituir la entrada

El resultado es una vista previa independiente. Aplicar, cargar un ejemplo o borrar muestra primero el contenido y el tamaño del reemplazo. Deshacer restaura una vez la entrada y su resultado anterior, incluido su estado de validez.

Un manifiesto original y una vista previa unidos por flechas para aplicar y deshacer.

Distingue comprobación, vista previa y aplicación

01

Desactiva la comprobación cuando convenga

El modo automático espera 350 ms tras la última edición. Al desactivarlo aparece el botón principal; Ctrl o Cmd con Intro ejecuta la misma comprobación. Cambiar la entrada o sangría bloquea la exportación anterior.

02

Comprueba cuántos grupos cambiaron

Ordenar dependencias genera un resultado con el número de grupos realmente reordenados. La opción de orden original vuelve a formatear la entrada. No se actualizan versiones ni se trasladan paquetes entre grupos.

03

Aplica después de comparar

Puedes copiar o descargar un resultado válido sin aplicarlo. Para sustituir la entrada debes confirmar la vista previa. Deshacer recupera el texto y el resultado anteriores, incluso si estaban pendientes de validación.

Revisa sintaxis, nombres y campos

Errores en la posición original

Al validar package.json se rechazan comentarios, comas finales, claves repetidas y raíces que no sean objetos. La línea, columna y JSON Pointer corresponden al texto original, también para claves con barras.

Nombre y versión de la raíz

El nombre de paquete npm usa las reglas de paquetes nuevos en name y las de nombres existentes en las dependencias. node-semver comprueba version cuando existe; los proyectos locales pueden omitir ambos campos.

Dependencias separadas por función

Consulta nombres y especificaciones sin cambios en cada grupo. Las listas largas muestran 100 filas cada vez. La ayuda explica ejecución, desarrollo, peer y optional; la edición se realiza en el JSON.

Sangría y archivo de salida

Para formatear package.json puedes elegir dos espacios, cuatro espacios o tabulaciones. Se conservan campos propios y la escritura de los números. El archivo descargado se llama package.json.

Alcance y límites de la comprobación

Esquema local con cobertura definida
Se usa un esquema derivado de SchemaStore y private se limita a un booleano. Las configuraciones de ESLint, Prettier y otros programas se conservan sin validación específica. El $schema de la entrada no se descarga.
Sin resolver instalaciones
Rangos, etiquetas, URL Git, rutas locales, alias y referencias workspace se conservan como cadenas. No se verifica que una versión exista, sea reciente, esté libre de vulnerabilidades o pueda instalarse.
Los scripts no se ejecutan
La herramienta no ejecuta comandos, instala dependencias, publica paquetes, modifica archivos de bloqueo ni lee otros archivos del espacio de trabajo. Un resultado válido no certifica que el proyecto esté listo para publicar.
Ordenación limitada a cuatro objetos
No se mueven paquetes entre grupos ni se eliminan duplicados entre ellos. Se mantiene el orden de exports, imports, arrays y scripts. La escritura de los escapes puede cambiar sin cambiar el valor de una cadena.
Límites de tamaño y precisión
Se admite un objeto JSON de hasta 100 000 unidades UTF-16 y 100 niveles. Los enteros no seguros y los desbordamientos bloquean la salida. Se muestran como máximo 50 diagnósticos; un resultado incorrecto o desactualizado no se puede exportar.

Preguntas sobre el editor de package.json

¿Cómo se añaden comentarios a package.json?

JSON estándar no admite comentarios de línea ni de bloque. Aquí se señalan como errores en lugar de borrarlos automáticamente. Si guardas notas en campos personalizados, serán datos normales; comprueba que el resto de tus herramientas acepte esa convención.

¿Qué diferencia hay entre dependencies, devDependencies y peerDependencies?

dependencies contiene paquetes de ejecución; devDependencies, los de desarrollo y pruebas. peerDependencies expresa requisitos de compatibilidad para el proyecto consumidor. optionalDependencies permite fallos de instalación. La herramienta no decide la clasificación de los paquetes.

¿Se pueden ordenar alfabéticamente las dependencias de package.json sin instalar un paquete?

Sí. La vista previa ordena los nombres de los cuatro grupos en el navegador sin instalar ningún paquete adicional. Revisa el recuento de grupos modificados antes de guardar. Los scripts y exports condicionales mantienen su orden.

¿Por qué el campo name de package.json no coincide con el patrón esperado?

Los nombres nuevos deben usar minúsculas, caracteres adecuados para URL y un máximo de 214 caracteres, incluido el ámbito. Se admite @team/widget. La validez del nombre no comprueba su disponibilidad ni su propietario en el registro.

¿Qué diferencia hay entre ~ y ^ en package.json?

En versiones mayores habituales distintas de cero, ~1.2.3 suele permitir actualizaciones de parche y ^1.2.3 también permite versiones menores compatibles. Las versiones mayores cero y las preliminares tienen reglas adicionales. Aquí se conserva la cadena sin resolver la versión instalada.

¿Qué campos necesita un package.json mínimo?

npm permite omitir name y version si el proyecto no se va a publicar. Por eso un objeto vacío pasa esta comprobación estructural local. Publicar requiere información y verificaciones adicionales.

¿Falta una comprobación útil?

Revisa el siguiente cambio

Abre el editor de package.json con un ejemplo pequeño y compara los grupos antes de sustituir la entrada por el resultado.