Inicio › Herramientas para desarrolladores › Generador de package.json

Generador de package.json

Rellena el formulario y obtén un package.json limpio y válido mientras escribes. El nombre, la versión, los rangos de dependencias y el repositorio se comprueban según las reglas de npm, y puedes empezar con un ajuste predefinido o importar un archivo existente.

Última actualización:

Datos básicos
Módulo y puntos de entrada
Repositorio
Scripts
Dependencias

Una por línea: name@range, name range o "name": "range". Un nombre sin versión recibe latest.

package.json

    Guarda el archivo en la raíz de tu proyecto y ejecuta npm install (o pnpm install / yarn) para crear el archivo de bloqueo.

    Publicidad
    Publicidad

    Cómo usar Generador de package.json

    1. Elige un ajuste predefinido (opcional), como Biblioteca Node, API con Express o App con Vite + React, para rellenar valores sensatos.
    2. Rellena lo básico: nombre del paquete, versión, descripción, autor, licencia y tipo de módulo (CommonJS o módulos ES).
    3. Añade scripts con los botones rápidos o escribe tus propios pares de nombre y comando.
    4. Escribe las dependencias, una por línea, como name@range, por ejemplo express@^4.21.2.
    5. Revisa el panel de validación, luego copia el JSON o descarga package.json y ejecuta npm install.

    Campos de package.json de un vistazo

    CampoQué haceEjemplo
    nameNombre del paquete en npm y en import/require. En minúsculas, seguro para URL, máximo 214 caracteres."@acme/utils"
    versionVersión semántica MAJOR.MINOR.PATCH, con etiquetas opcionales de prelanzamiento y de compilación."2.1.0-beta.1"
    privateSi es true, npm publish se niega a publicar el paquete.true
    type"module" convierte los archivos .js en módulos ES; "commonjs" (el valor por defecto) mantiene require."module"
    mainArchivo de entrada que carga require('pkg') cuando no hay campo exports."./dist/index.js"
    exportsMapa moderno de puntos de entrada. También oculta todos los archivos que no se exportan."./index.js"
    typesArchivo de declaraciones de TypeScript para la entrada principal."./dist/index.d.ts"
    binComandos que se instalan en el PATH. El archivo necesita #!/usr/bin/env node como primera línea.{"mycli": "./bin/cli.js"}
    filesLista de archivos que se incluyen al publicar. package.json, README y LICENSE se incluyen siempre.["dist"]
    scriptsComandos para npm run <name>. start y test también funcionan como npm start y npm test.{"dev": "vite"}
    enginesVersiones de Node.js compatibles. npm avisa (o falla con engine-strict) con las demás.{"node": ">=18"}
    packageManagerVersión exacta del gestor de paquetes, usada por Corepack."[email protected]"

    Guía rápida de rangos de versión

    RangoCoincide con
    4.21.2Exactamente 4.21.2
    ^4.21.2>=4.21.2 y <5.0.0 (actualizaciones minor y patch)
    ^0.3.1>=0.3.1 y <0.4.0 (en 0.x el acento circunflejo solo permite actualizaciones patch)
    ~4.21.2>=4.21.2 y <4.22.0 (solo actualizaciones patch)
    4.x o 4Cualquier versión 4.y.z
    >=18 <23Ambas condiciones (AND)
    ^16 || ^18Cualquiera de los rangos (OR)
    1.2.0 - 1.4.5Rango inclusivo con guion
    * o latestCualquier versión / la versión etiquetada latest (no reproducible, evítalo en apps)
    workspace:*, file:../lib, github:user/repoWorkspace de monorepo, carpeta local o dependencia de Git

    Consejos para un package.json limpio

    • Las aplicaciones y los sitios web deberían usar "private": true y versionar el archivo de bloqueo para que cada instalación obtenga versiones idénticas.
    • Las bibliotecas deberían mantener pocas dependencies de ejecución, poner las herramientas en devDependencies y usar peerDependencies para los frameworks que ya tiene la app anfitriona, como React.
    • Usa files (o un .npmignore) para que no se publiquen pruebas, fuentes ni configuraciones. Comprueba qué se incluye con npm pack --dry-run.
    • Los scripts del ciclo de vida se ejecutan automáticamente: prepare se ejecuta después de npm install y antes de publicar, prepublishOnly solo antes de npm publish, y pre<name>/post<name> envuelven cualquier script.
    • Sube versiones con npm version patch|minor|major, que además crea una etiqueta de Git.

    Preguntas frecuentes

    ¿Qué campos necesita un package.json?

    Solo name y version son obligatorios si publicas el paquete en npm. En una aplicación privada no hay nada estrictamente obligatorio, pero name, version, private: true, scripts y dependencies son lo habitual. Description, license, repository y author ayudan a otros a entender el proyecto.

    ¿Cuáles son las reglas para el nombre de un paquete npm?

    El nombre debe tener 214 caracteres o menos incluido el ámbito, estar en minúsculas, ser seguro para URL (letras, dígitos, -, ., _ y ~), no empezar con punto ni guion bajo y no contener espacios. Los nombres con ámbito tienen la forma @scope/name. No se permiten nombres de módulos del núcleo de Node como http o fs.

    ¿Qué hace "type": "module"?

    Indica a Node.js que trate los archivos .js del paquete como módulos ES, así que usas import y export en lugar de require y module.exports. Sin él, o con "type": "commonjs", los archivos .js son CommonJS. Siempre puedes forzar un formato con la extensión .mjs o .cjs.

    ¿Qué diferencia hay entre ^ y ~ en las versiones?

    Un rango con acento circunflejo como ^4.21.2 permite cualquier versión posterior con el mismo número major (4.x.x, al menos 4.21.2). Un rango con tilde como ~4.21.2 solo permite actualizaciones patch (4.21.x). Una versión exacta como 4.21.2 fija una sola versión. En las versiones 0.x el acento circunflejo es más estricto y solo permite actualizaciones patch dentro de la misma versión minor.

    ¿dependencies, devDependencies o peerDependencies?

    Las dependencies se necesitan en tiempo de ejecución y se instalan para cualquiera que instale tu paquete. Las devDependencies solo se necesitan al desarrollar o compilar (ejecutores de pruebas, linters, empaquetadores). Las peerDependencies declaran un paquete que debe aportar el proyecto anfitrión, como react en una biblioteca de componentes React.

    ¿Por qué usar "private": true?

    Evita que npm publish publique el paquete por accidente. Úsalo en aplicaciones, sitios web y raíces de monorepos que no deben estar en el registro de npm.

    ¿Se suben mis datos?

    No. El package.json se crea y se valida por completo en tu navegador. El último estado del formulario solo se guarda en el almacenamiento local de este navegador.

    ¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?

    Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.

    Herramientas relacionadas

    Ver todas las de Generadores de código →