Package.json-generator

package.json
Volgende

In plaats van npm init uit te voeren en elf vraagstukken te beantwoorden, vul een formulier in en ontvang een ordelijk, correct gestructureerd package.json-bestand. Deze generator omvat de vereiste velden (naam, versie), de veelgebruikte velden (scripts, afhankelijkheden, devDependencies, engines) en de belangrijke details (repository, fouten, sleutelwoorden, licentie) die ervoor zorgen dat een pakket eenvoudig te vinden en te publiceren is.

Hoe je package.json genereert

  1. 1

    Geef naam en versie op

    De naam volgt de regels van npm: kleine letters, geschikt voor URLs en beperkt tot maximaal 214 karakters. De versie is in het semver-formaat (bijvoorbeeld 0.1.0).

  2. 2

    Kies de modulotype

    CommonJS (standaard) of ESM via 'type': 'module'. Van toepassing op projecten met Node.js 14 en hoger.

  3. 3

    Scripten toevoegen

    Starten, bouwen, testen en linten, deze commando's worden uitgevoerd met `npm run <name>`.

  4. 4

    Lijst van afhankelijkheden

    Runtime-pakketten in afhankelijkheden; hulpmiddelen in ontwikkelingsafhankelijkheden.

  5. 5

    Metagegevens instellen

    Beschrijving, auteur, licentie, repository-URL en sleutelwoorden.

  6. 6

    Kopieer de uitvoering

    Plaats het in een nieuwe package.json-bestand op de wortelpath van het project.

De belangrijkste velden

Veld Verplicht? Opmerkingen
name Ja Kleine letters, 1–214 karakters, geschikt voor URLs
version Ja Semver (major.minor.patch)
type Nee “module” voor ESM; weggelaten voor CommonJS
main Aanbevolen Invoerpunt voor CommonJS (index.js)
exports Aanbevolen Moderne exportkaart voor dubbele CJS/ESM
scripts Sterk aan te raden Commando’s voor npm run <name>
dependencies Naar behoefte Run-timepakketten
devDependencies Naar behoefte Bouwtools, testrunners, linters
engines Handig om te hebben Vereiste versiebereik voor de node
license Ja voor publicatie SPDX-identificator zoals MIT, Apache-2.0

Semver-cheatlist

  • 1.0.0, major.minor.patch
  • ^1.0.0 – compatibel met versies 1.x.x (≥1.0.0, <2.0.0)
  • ~1.0.0, alleen patch-updates (>=1.0.0, <1.1.0)
  • >=1.0.0 <2.0.0, expliciete bereik
  • 1.0.0-beta.1, prerelease
  • latest, npm-tag, geen versie

De standaardwaarde bij het uitvoeren van npm install package is ^, waardoor niet-onderbrekende updates mogelijk zijn.

Standaard scripts die je zeker moet hebben

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

Valkuilen bij het benoemen

  • Geen hoofdletters. MyPackage mislukt bij npm install.
  • Geen spaties. Gebruik koppeltekens: my-package.
  • Scoped namen beginnen met @org/ voor organisaties op GitHub of npm: @acme/utils.
  • Gereserveerde woorden. node_modules, favicon.ico, core en express mogen niet worden gebruikt als pakketnamen.

Licentieopties

Kies een erkende SPDX-identificator:

  • MIT, de meest flexibele en veelgebruikte optie.
  • Apache-2.0, permissief met octrooiverlening.
  • ISC – een zeer korte, MIT-achtige licentie die standaard wordt gebruikt door npm.
  • GPL-3.0 of een latere versie – copyleft.
  • UNLICENSED, privépakket, niet bedoeld voor distributie.

Foute of dubbelzinnige licentiestrings leiden tot waarschuwingen bij het publiceren op npm.

Veelgestelde vragen

Dependenties worden geïnstalleerd wanneer iemand npm install uitvoert in een project dat uw pakket gebruikt. Dev-dependencies worden alleen geïnstalleerd in het eigen ontwikkelomgeving van het pakket. Plaats runtime-pakketten onder ‘dependencies’ en test-/build-hulpmiddelen onder ‘devDependencies’.

Ja, voor applicaties. De lockfile bepaalt de exacte versie en zorgt voor reproduceerbare installaties op verschillende apparaten en in de CI-processen. Voor bibliothekenpakketten die worden gepubliceerd op npm is de lockfile optioneel; gebruikers krijgen hun eigen lockfile.

Enkel als u wilt dat het pakket standaard in ESM-synthese (import/export-synthese) is opgesteld; anders worden .js-bestanden als CommonJS bestempeld. U kunt ook .mjs gebruiken voor ESM-bestanden en .cjs voor CommonJS-bestanden, onafhankelijk van de type.

De versies van de node tegen welke uw code is getest. Een typische keuze vandaag de dag is "engines": {"node": ">=18"}. Dit is een waarschuwing, geen fout; desondanks houdt het hulpmiddel deze in aanmerking en gebruikers plakken deze correct.

Gerelateerde tools

Tool beschikbaar in andere talen