Generador de Package.json
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
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
Elige el tipo de módulo
CommonJS (predeterminado) o ESM a través de "type": "module". Importante para proyectos de Node.js 14+.
-
3
Agrega scripts
Start, build, test, lint, los comandos se ejecutan con `npm run <name>`.
-
4
Lista dependencias
Paquetes de tiempo de ejecución en dependencias, herramientas en devDependencies.
-
5
Establece metadatos
Descripción, autor, licencia, URL del repositorio, palabras clave.
-
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 |
Sí | Minúsculas, 1-214 caracteres, seguro para URL |
version |
Sí | 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ícito1.0.0-beta.1, versión previalatest, 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.
MyPackagefalla ennpm 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,expressno 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
Referencia de la tabla ASCII
Tabla ASCII completa del 0 al 127 con decimal, hex, octal, binario y referencia numérica HTML para cada carácter, incluidos los códigos de control como NUL, LF y DEL.
Referencia de atajos de teclado
Busca los atajos predeterminados documentados de VS Code, Chrome y Bash con GNU Readline en macOS, Windows y Linux.
Referencia de caracteres HTML
Lista buscable de entidades HTML, sus códigos nombrados y numéricos, y una copia con un clic para caracteres y símbolos especiales.
Generador de letras aleatorias
Genera letras aleatorias A-Z. Elige la cantidad, usa mayúsculas, minúsculas o mezcla de ambas, y aplica el resultado en juegos, consignas o clase.
Generador de Formularios CSS
Genera el CSS de un formulario completo con estilo: una cuadrícula de formulario, etiquetas, entradas, áreas de texto, selectores y estados de foco claros. Elige el color de acento, el radio de las esquinas y la separación, y copia el código.
Generador de EditorConfig
Genera un archivo .editorconfig con tu estilo y tamaño de indentación, fin de línea, charset y reglas de espacios para un formato consistente en IDEs y editores.
Herramienta disponible en otros idiomas
- Generator package.json [ID]
- Gerador de Package.json [PT]
- package.json-Generator [DE]
- PackageJsonジェネレータ [JA]
- Package.json 생성기 [KO]
- ตัวสร้าง package.json [TH]
- مولد package.json [AR]
- Generator package.json [PL]
- Package.json-generator [SV]
- Trình tạo package.json [VI]
- Générateur de package.json [FR]
- Package.json-generator [NL]
- Package.json Generator [EN]
- Generatore di Package.json [IT]
- Генератор package.json [RU]
- Package.json Oluşturucu [TR]
- package.json 生成器 [ZH]