Generador de Package.json

package.json
Siguiente

En lugar de ejecutar npm init y responder once preguntas, completa un formulario y obtén un package.json ordenado y correctamente estructurado. Este generador cubre los campos requeridos (nombre, versión), los más utilizados (scripts, dependencias, devDependencies, engines) y las características (repositorio, errores, palabras clave, licencia) que hacen que un paquete sea descubrible y publicable.

Cómo generar tu package.json

  1. 1

    Ingresa nombre y versión

    El nombre sigue las reglas de npm: minúsculas, seguro para URL, menos de 214 caracteres. La versión es semver (por ejemplo, 0.1.0).

  2. 2

    Elige el tipo de módulo

    CommonJS (predeterminado) o ESM a través de "type": "module". Importante para proyectos de Node.js 14+.

  3. 3

    Agrega scripts

    Start, build, test, lint, los comandos se ejecutan con `npm run <name>`.

  4. 4

    Lista dependencias

    Paquetes de tiempo de ejecución en dependencias, herramientas en devDependencies.

  5. 5

    Establece metadatos

    Descripción, autor, licencia, URL del repositorio, palabras clave.

  6. 6

    Copia la salida

    Pega en un nuevo package.json en la raíz del proyecto.

Los campos que más importan

Campo ¿Requerido? Notas
name Minúsculas, 1-214 caracteres, seguro para URL
version Semver (mayor.menor.parche)
type No “module” para ESM, omitir para CommonJS
main Recomendado Punto de entrada para CommonJS (index.js)
exports Recomendado Mapa de exportaciones moderno para dual CJS/ESM
scripts Muy recomendado Comandos npm run <name>
dependencies Según sea necesario Paquetes de tiempo de ejecución
devDependencies Según sea necesario Herramientas de construcción, ejecutores de pruebas, linters
engines Bueno tener Rango de versiones de Node requeridas
license Sí para publicar Identificador SPDX como MIT, Apache-2.0

Hoja de trucos de Semver

  • 1.0.0, mayor.menor.parche
  • ^1.0.0, compatible con 1.x.x (>=1.0.0, <2.0.0)
  • ~1.0.0, solo actualizaciones de parches (>=1.0.0, <1.1.0)
  • >=1.0.0 <2.0.0, rango explícito
  • 1.0.0-beta.1, versión previa
  • latest, etiqueta npm, no una versión

El valor predeterminado al ejecutar npm install package es ^, que permite actualizaciones no rompedoras.

Scripts estándar que vale la pena tener

{
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js",
    "build": "tsc",
    "test": "vitest",
    "lint": "eslint .",
    "format": "prettier --write ."
  }
}

Errores comunes en nombres

  • Sin mayúsculas. MyPackage falla en npm install.
  • Sin espacios. Usa guiones: my-package.
  • Nombres con alcance comienzan con @org/ para organizaciones de GitHub o npm: @acme/utils.
  • Palabras reservadas. node_modules, favicon.ico, core, express no pueden usarse como nombres de paquetes.

Opciones de licencia

Elige un identificador SPDX reconocido:

  • MIT, la opción más permisiva común.
  • Apache-2.0, permisiva con concesión de patente.
  • ISC, licencia muy corta similar a MIT, predeterminada de npm.
  • GPL-3.0-or-later, copyleft.
  • UNLICENSED, paquete privado, no para distribución.

Cadenas de licencia incorrectas o ambiguas generan advertencias en npm publish.

Preguntas frecuentes

Las dependencias se instalan cuando alguien ejecuta npm install en un proyecto que consume el tuyo. Las devDependencies solo se instalan en el entorno de desarrollo del paquete. Coloca los paquetes de tiempo de ejecución en dependencias y las herramientas de prueba/construcción en devDependencies.

Sí, para aplicaciones. El archivo de bloqueo fija versiones exactas y asegura instalaciones reproducibles en diferentes máquinas y CI. Para paquetes de biblioteca publicados en npm, el archivo de bloqueo es opcional: los consumidores obtienen su propio archivo de bloqueo.

Solo si deseas que el paquete sea ESM (sintaxis de importación/exportación) por defecto. Sin él, los archivos .js se tratan como CommonJS. También puedes usar .mjs para archivos ESM o .cjs para archivos CommonJS independientemente de “type”.

Las versiones de Node contra las que se ha probado tu código. Una elección típica hoy es "engines": {"node": ">=18"}. Es una advertencia, no un error, pero las herramientas lo respetan y los usuarios fijan correctamente.

Herramientas relacionadas

Herramienta disponible en otros idiomas