package.json-Generator

package.json
Weiter

Anstatt npm init auszuführen und elf Fragen zu beantworten, füllen Sie ein Formular aus und erhalten ein ordentlich strukturiertes package.json zurück. Dieser Generator deckt die erforderlichen Felder (Name, Version), die häufig verwendeten (Skripte, Abhängigkeiten, devDependencies, Engines) und die Feinheiten (Repository, Bugs, Schlüsselwörter, Lizenz) ab, die ein Paket auffindbar und veröffentlichbar machen.

So generieren Sie Ihr package.json

  1. 1

    Geben Sie Name und Version ein

    Der Name folgt den npm-Regeln: Kleinbuchstaben, URL-sicher, unter 214 Zeichen. Die Version ist semver (z.B. 0.1.0).

  2. 2

    Wählen Sie den Modultyp

    CommonJS (Standard) oder ESM über "type": "module". Wichtig für Node.js 14+ Projekte.

  3. 3

    Fügen Sie Skripte hinzu

    Start, Build, Test, Lint, die Befehle werden mit `npm run <name>` ausgeführt.

  4. 4

    Listen Sie Abhängigkeiten auf

    Laufzeitpakete in Abhängigkeiten, Werkzeuge in devDependencies.

  5. 5

    Setzen Sie Metadaten

    Beschreibung, Autor, Lizenz, Repository-URL, Schlüsselwörter.

  6. 6

    Kopieren Sie die Ausgabe

    Fügen Sie sie in ein neues package.json im Projektstamm ein.

Die wichtigsten Felder

Feld Erforderlich? Hinweise
name Ja Kleinbuchstaben, 1-214 Zeichen, URL-sicher
version Ja Semver (major.minor.patch)
type Nein “module” für ESM, weglassen für CommonJS
main Empfohlen Einstiegspunkt für CommonJS (index.js)
exports Empfohlen Modernes Exports-Map für duale CJS/ESM
scripts Stark empfohlen npm run <name> Befehle
dependencies Nach Bedarf Laufzeitpakete
devDependencies Nach Bedarf Build-Tools, Test-Runner, Linter
engines Schön zu haben Erforderlicher Node-Versionenbereich
license Ja für Veröffentlichung SPDX-Identifikator wie MIT, Apache-2.0

Semver-Spickzettel

  • 1.0.0, major.minor.patch
  • ^1.0.0, kompatibel mit 1.x.x (>=1.0.0, <2.0.0)
  • ~1.0.0, nur Patch-Updates (>=1.0.0, <1.1.0)
  • >=1.0.0 <2.0.0, expliziter Bereich
  • 1.0.0-beta.1, Vorabversion
  • latest, npm-Tag, keine Version

Standard beim Ausführen von npm install package ist ^, was nicht-breaking Upgrades erlaubt.

Standard-Skripte, die nützlich sind

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

Namensfallen

  • Keine Großbuchstaben. MyPackage schlägt bei npm install fehl.
  • Keine Leerzeichen. Verwenden Sie Bindestriche: my-package.
  • Scoped-Namen beginnen mit @org/ für GitHub oder npm-Organisationen: @acme/utils.
  • Reservierte Wörter. node_modules, favicon.ico, core, express können nicht als Paketnamen verwendet werden.

Lizenzoptionen

Wählen Sie einen anerkannten SPDX-Identifikator:

  • MIT, die am häufigsten verwendete, permissive Wahl.
  • Apache-2.0, permissiv mit Patentgewährung.
  • ISC, sehr kurze, MIT-ähnliche Lizenz, npm-Standard.
  • GPL-3.0-or-later, Copyleft.
  • UNLICENSED, privates Paket, nicht zur Verbreitung.

Falsche oder mehrdeutige Lizenzzeichenfolgen lösen Warnungen bei npm publish aus.

Häufig gestellte Fragen

Abhängigkeiten werden installiert, wenn jemand npm install in einem Projekt ausführt, das Ihres konsumiert. devDependencies werden nur in der Entwicklungsumgebung des Pakets installiert. Laufzeitpakete gehören in die Abhängigkeiten und Test-/Build-Werkzeuge in die devDependencies.

Ja, für Anwendungen. Die Sperrdatei fixiert genaue Versionen und stellt reproduzierbare Installationen auf verschiedenen Maschinen und CI sicher. Für Bibliothekspakete, die auf npm veröffentlicht werden, ist die Sperrdatei optional, Verbraucher erhalten ihre eigene Sperrdatei.

Nur wenn Sie möchten, dass das Paket standardmäßig ESM (Import/Export-Syntax) ist. Ohne es werden .js-Dateien als CommonJS behandelt. Sie können auch .mjs für ESM-Dateien oder .cjs für CommonJS-Dateien verwenden, unabhängig von “type”.

Die Node-Versionen, gegen die Ihr Code getestet wurde. Eine typische Wahl heute ist "engines": {"node": ">=18"}. Es ist eine Warnung, kein Fehler, aber Werkzeuge respektieren es und Benutzer fixieren korrekt.

Verwandte Tools

Tool in anderen Sprachen verfügbar