Suche…


Bemerkungen

Sie können package.json mit erstellen

npm init

was Sie über grundlegende Fakten über Ihre Projekte stellen, einschließlich Lizenz - Kennung .

Grundlegende Projektdefinition

{
    "name": "my-project",
    "version": "0.0.1",
    "description": "This is a project.",
    "author": "Someone <[email protected]>",
    "contributors": [{
        "name": "Someone Else",
        "email": "[email protected]"
    }],
    "keywords": ["improves", "searching"]
}
Feld Beschreibung
Name ein erforderliches Feld für die Installation eines Pakets. Muss klein geschrieben werden, ein einzelnes Wort ohne Leerzeichen. (Bindestriche und Unterstriche erlaubt)
Ausführung ein erforderliches Feld für die Paketversion mit semantischer Versionierung .
Beschreibung eine kurze Beschreibung des Projekts
Autor gibt den Autor des Pakets an
Mitwirkende ein Array von Objekten, eines für jeden Beitragenden
Schlüsselwörter eine Reihe von Zeichenfolgen, dies wird den Leuten helfen, Ihr Paket zu finden

Abhängigkeiten

"Abhängigkeiten": {"Modulname": "0.1.0"}

  • genau : 0.1.0 installiert diese spezifische Version des Moduls.
  • neueste untergeordnete Version : ^0.1.0 installiert die neueste untergeordnete Version, beispielsweise 0.2.0 , installiert jedoch kein Modul mit einer höheren Hauptversion, z. B. 1.0.0
  • neuester Patch : 0.1.x oder ~0.1.0 installiert die neueste verfügbare Patch-Version, z. B. 0.1.4 , installiert jedoch kein Modul mit einer höheren Haupt- oder Nebenversion, z. B. 0.2.0 oder 1.0.0 .
  • Wildcard : * installiert die neueste Version des Moduls.
  • Git Repository : Folgendes wird ein Tarball aus dem Hauptzweig eines Git Repo installieren. Ein #sha , #tag oder #branch kann ebenfalls angegeben werden:
    • GitHub : user/project oder user/project#v1.0.0
    • URL : git://gitlab.com/user/project.git oder git://gitlab.com/user/project.git#develop
  • lokaler Pfad : file:../lib/project

Nachdem Sie sie zu package.json hinzugefügt haben, verwenden Sie den Befehl npm install in Ihrem Projektverzeichnis im Terminal.

devDependencies

"devDependencies": {
    "module-name": "0.1.0"
}

Für Abhängigkeiten, die nur für die Entwicklung erforderlich sind, wie zum Beispiel das Testen von Styling-Proxies ext. Diese dev-Abhängigkeiten werden nicht installiert, wenn "npm install" im Produktionsmodus ausgeführt wird.

Skripte

Sie können Skripts definieren, die vor oder nach einem anderen Skript ausgeführt werden können oder ausgelöst werden.

{
  "scripts": {
    "pretest": "scripts/pretest.js",
    "test": "scripts/test.js",
    "posttest": "scripts/posttest.js"
  }
}

In diesem Fall können Sie das Skript ausführen, indem Sie einen der folgenden Befehle ausführen:

$ npm run-script test
$ npm run test
$ npm test
$ npm t

Vordefinierte Skripte

Skriptname Beschreibung
vorveröffentlichen Ausführen, bevor das Paket veröffentlicht wird.
veröffentlichen, postpublish Ausführen, nachdem das Paket veröffentlicht wurde.
vorinstallieren Führen Sie den Vorgang aus, bevor das Paket installiert wird.
installieren, nachinstallieren Ausführen, nachdem das Paket installiert wurde.
deinstallieren, deinstallieren Ausführen, bevor das Paket deinstalliert wird.
postuninstall Nach der Deinstallation des Pakets ausführen.
Vorversion, Version Führen Sie den Vorgang aus, bevor Sie die Paketversion stoßen.
Postversion Führen Sie nach dem Bump die Paketversion aus.
Vortest, Test, Posttest Führen Sie den Befehl npm test
Stoppen Sie, stoppen Sie, stoppen Sie Führen Sie den Befehl npm stop
Prestart, Start, Poststart Führen Sie den Befehl npm start
Neustart, Neustart, Neustart Wird mit dem Befehl npm restart ausgeführt

Benutzerdefinierte Skripte

Sie können auch Ihre eigenen Skripts auf die gleiche Weise definieren wie mit den vordefinierten Skripts:

{
  "scripts": {
    "preci": "scripts/preci.js",
    "ci": "scripts/ci.js",
    "postci": "scripts/postci.js"
  }
}

In diesem Fall können Sie das Skript ausführen, indem Sie einen der folgenden Befehle ausführen:

$ npm run-script ci
$ npm run ci

Benutzerdefinierte Skripte unterstützt auch Pre- und Post - Skripte, wie im obigen Beispiel gezeigt.

Erweiterte Projektdefinition

Einige der zusätzlichen Attribute werden von der npm-Website wie repository , bugs oder homepage analysiert und im Infobox für diese Pakete angezeigt

{
  "main": "server.js",  
  "repository" :  {
    "type": "git",
    "url": "git+https://github.com/<accountname>/<repositoryname>.git"
  },
  "bugs": {
    "url": "https://github.com/<accountname>/<repositoryname>/issues"
  },
  "homepage": "https://github.com/<accountname>/<repositoryname>#readme",
  "files": [
    "server.js", // source files
    "README.md", // additional files
    "lib" // folder with all included files
  ]
}
Feld Beschreibung
Main Einstiegsskript für dieses Paket. Dieses Skript wird zurückgegeben, wenn ein Benutzer das Paket benötigt.
Repository Ort und Typ des öffentlichen Repositorys
Bugs Bugtracker für dieses Paket (zB github)
Startseite Homepage für dieses Paket oder das allgemeine Projekt
Dateien Liste der Dateien und Ordner, die heruntergeladen werden sollten, wenn ein Benutzer eine npm install <packagename>

Paket.json erkunden

Eine package.json Datei, die normalerweise im Projektstammverzeichnis vorhanden ist, enthält Metadaten zu Ihrer App oder Ihrem Modul sowie die Liste der Abhängigkeiten, die von npm bei der Ausführung von npm install .

Um eine package.json zu initialisieren, geben package.json npm init an der Eingabeaufforderung ein.

Um eine package.json mit Standardwerten zu erstellen, verwenden Sie:

npm init --yes
# or
npm init -y

Um ein Paket zu installieren und in package.json zu package.json verwenden Sie:

npm install {package name} --save

Sie können auch die Kurzschreibweise verwenden:

 npm i -S {package name}

NPM-Aliasnamen -S an --save und -D an --save-dev , um sie in Ihren Produktions- bzw. Entwicklungsabhängigkeiten zu speichern.

Das Paket wird in Ihren Abhängigkeiten angezeigt. Wenn Sie --save-dev anstelle von --save , wird das Paket in Ihren devDependencies angezeigt.

Wichtige Eigenschaften von package.json :

{
  "name": "module-name",
  "version": "10.3.1",
  "description": "An example module to illustrate the usage of a package.json",
  "author": "Your Name <[email protected]>",
  "contributors": [{
    "name": "Foo Bar",
    "email": "[email protected]"
  }],
  "bin": {
    "module-name": "./bin/module-name"
  },
  "scripts": {
    "test": "vows --spec --isolate",
    "start": "node index.js",
    "predeploy": "echo About to deploy",
    "postdeploy": "echo Deployed",
    "prepublish": "coffee --bare --compile --output lib/foo src/foo/*.coffee"
  },
  "main": "lib/foo.js",
  "repository": {
    "type": "git",
    "url": "https://github.com/username/repo"
  },
  "bugs": {
    "url": "https://github.com/username/issues"
  },
  "keywords": [
    "example"
  ],
  "dependencies": {
    "express": "4.2.x"
  },
  "devDependencies": {
    "assume": "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0"
  },
  "peerDependencies": {
    "moment": ">2.0.0"
  },
  "preferGlobal": true,
  "private": true,
  "publishConfig": {
    "registry": "https://your-private-hosted-npm.registry.domain.com"
  },
  "subdomain": "foobar",
  "analyze": true,
  "license": "MIT",
  "files": [
    "lib/foo.js"
  ]
}

Informationen zu wichtigen Eigenschaften:

name

Der eindeutige Name Ihres Pakets sollte in Kleinbuchstaben angegeben werden. Diese Eigenschaft ist erforderlich und Ihr Paket kann nicht ohne installiert werden.

  1. Der Name darf höchstens 214 Zeichen umfassen.
  2. Der Name darf nicht mit einem Punkt oder Unterstrich beginnen.
  3. Neue Pakete dürfen keine Großbuchstaben enthalten.
version

Die Version des Pakets wird durch Semantic Versioning (Semver) angegeben. Dabei wird davon ausgegangen, dass eine Versionsnummer als MAJOR.MINOR.PATCH geschrieben wird und Sie das Inkrement erhöhen:

  1. MAJOR-Version, wenn Sie inkompatible API-Änderungen vornehmen
  2. MINOR-Version, wenn Sie Funktionalität rückwärtskompatibel hinzufügen
  3. PATCH-Version, wenn Sie rückwärtskompatible Fehlerbehebungen vornehmen
description

Die Beschreibung des Projekts. Versuchen Sie es kurz und prägnant zu halten.

author

Der Autor dieses Pakets.

bin

Ein Objekt, mit dem Binärskripts aus Ihrem Paket angezeigt werden. Das Objekt nimmt an, dass der Schlüssel der Name des Binärskripts und der Wert ein relativer Pfad zum Skript ist.

Diese Eigenschaft wird von Paketen verwendet, die eine CLI (Befehlszeilenschnittstelle) enthalten.

script

Ein Objekt, das zusätzliche npm-Befehle verfügbar macht. Das Objekt nimmt an, dass der Schlüssel der Befehl npm ist und der Wert der Skriptpfad ist. Diese Skripts können ausgeführt werden, wenn Sie npm run {command name} oder npm run-script {command name} .

Pakete, die eine Befehlszeilenschnittstelle enthalten und lokal installiert sind, können ohne relativen Pfad aufgerufen werden. Anstatt ./node-modules/.bin/mocha , können Sie also direkt mocha aufrufen.

main

Der Haupteinstiegspunkt für Ihr Paket. Beim Aufruf von require('{module name}') im Knoten handelt es sich um die tatsächlich benötigte Datei.

Es wird dringend empfohlen, dass das Anfordern der Hauptdatei keine Nebeneffekte erzeugt. Das Anfordern der Hauptdatei sollte beispielsweise keinen HTTP-Server starten oder eine Verbindung zu einer Datenbank herstellen. Stattdessen sollten Sie in Ihrem Hauptskript etwas wie exports.init = function () {...} erstellen.

keywords

Eine Reihe von Keywords, die Ihr Paket beschreiben. Diese helfen den Leuten, Ihr Paket zu finden.

devDependencies

Dies sind die Abhängigkeiten, die nur für die Entwicklung und den Test Ihres Moduls vorgesehen sind. Die Abhängigkeiten werden automatisch installiert, sofern nicht die NODE_ENV=production festgelegt wurde. Wenn dies der Fall ist, können Sie diese Pakete weiterhin mit npm install --dev

peerDependencies

Wenn Sie dieses Modul verwenden, listet peerDependencies die Module auf, die Sie neben diesem Modul installieren müssen. Zum Beispiel muss moment-timezone neben moment installiert moment da es sich um ein Plugin für Moment handelt, auch wenn es nicht direkt require("moment") .

preferGlobal

Eine Eigenschaft, die angibt, dass diese Seite die globale npm install -g {module-name} mit npm install -g {module-name} . Diese Eigenschaft wird von Paketen verwendet, die eine CLI (Befehlszeilenschnittstelle) enthalten.

In allen anderen Situationen sollten Sie diese Eigenschaft NICHT verwenden.

publishConfig

Die publishConfig ist ein Objekt mit Konfigurationswerten, die zum Veröffentlichen von Modulen verwendet werden. Die eingestellten Konfigurationswerte setzen Ihre Standard-npm-Konfiguration außer Kraft.

Die häufigste Verwendung von publishConfig ist das Veröffentlichen des Pakets in einer privaten npm-Registrierung, sodass Sie weiterhin die Vorteile von npm nutzen können, jedoch nicht für private Pakete. Dazu legen Sie einfach die URL Ihrer privaten npm als Wert für den Registrierungsschlüssel fest.

files

Dies ist ein Array aller Dateien, die in das veröffentlichte Paket aufgenommen werden sollen. Es kann entweder ein Dateipfad oder ein Ordnerpfad verwendet werden. Der gesamte Inhalt eines Ordnerpfads wird eingeschlossen. Dies reduziert die Gesamtgröße Ihres Pakets, indem nur die korrekten Dateien zum Verteilen eingeschlossen werden. Dieses Feld arbeitet mit einer .npmignore .

Quelle



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow