Zoeken…


Opmerkingen

U kunt package.json met

npm init

waarin u wordt gevraagd naar basisfeiten over uw projecten, inclusief licentie-ID .

Fundamentele projectdefinitie

{
    "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"]
}
Veld Beschrijving
naam een verplicht veld om een pakket te installeren. Moet kleine letters zijn, één woord zonder spaties. (Streepjes en onderstrepingstekens toegestaan)
versie een verplicht veld voor de pakketversie met behulp van semantische versiebeheer .
Beschrijving een korte beschrijving van het project
auteur specificeert de auteur van het pakket
bijdragers een reeks objecten, één voor elke bijdrager
trefwoorden een reeks strings, dit helpt mensen uw pakket te vinden

afhankelijkheden

"afhankelijkheden": {"module-naam": "0.1.0"}

  • exact : 0.1.0 installeert die specifieke versie van de module.
  • nieuwste secundaire versie : ^0.1.0 installeert de nieuwste secundaire versie, bijvoorbeeld 0.2.0 , maar installeert geen module met een hogere hoofdversie, bijvoorbeeld 1.0.0
  • nieuwste patch : 0.1.x of ~0.1.0 installeert de nieuwste beschikbare 0.1.4 , bijvoorbeeld 0.1.4 , maar installeert geen module met een hogere hoofd- of secundaire versie, bijv. 0.2.0 of 1.0.0 .
  • wildcard : * installeert de nieuwste versie van de module.
  • git repository : het volgende zal een tarball installeren van de master branch van een git repo. Een #sha , #tag of #branch kan ook worden verstrekt:
    • GitHub : user/project of user/project#v1.0.0
    • url : git://gitlab.com/user/project.git of git://gitlab.com/user/project.git#develop
  • lokaal pad : file:../lib/project

Nadat u ze aan uw package.json hebt toegevoegd, gebruikt u de opdracht npm install in uw projectmap in terminal.

devDependencies

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

Voor afhankelijkheden die alleen nodig zijn voor ontwikkeling, zoals het testen van stylingproxy's ext. Die dev-afhankelijkheden worden niet geïnstalleerd wanneer "npm install" in de productiemodus wordt uitgevoerd.

scripts

U kunt scripts definiëren die kunnen worden uitgevoerd of worden geactiveerd voor of na een ander script.

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

In dit geval kunt u het script uitvoeren door een van deze opdrachten uit te voeren:

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

Vooraf gedefinieerde scripts

Scriptnaam Beschrijving
prepublish Uitvoeren voordat het pakket is gepubliceerd.
publiceren, publiceren Uitvoeren nadat het pakket is gepubliceerd.
preinstall Uitvoeren voordat het pakket is geïnstalleerd.
installeren, postinstalleren Uitvoeren nadat het pakket is geïnstalleerd.
pre-installatie, verwijdering Uitvoeren voordat het pakket is verwijderd.
postuninstall Uitvoeren nadat het pakket is verwijderd.
vorige versie Voer uit voordat u de pakketversie tegenkomt.
postversion Voer na het uitvoeren van de pakketversie uit.
pretest, test, posttest Uitgevoerd door het npm test
prestop, stop, poststop Uitgevoerd door het npm stop stopcommando
voorstart, start, poststart Uitgevoerd met de opdracht npm start
herstart, herstart, herstart Uitgevoerd door het npm restart

Door de gebruiker gedefinieerde scripts

U kunt ook uw eigen scripts definiëren op dezelfde manier als met de vooraf gedefinieerde scripts:

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

In dit geval kunt u het script uitvoeren door een van deze opdrachten uit te voeren:

$ npm run-script ci
$ npm run ci

Gebruikersgedefinieerde scripts ook dragers voor en na scripts, zoals in het voorbeeld hierboven.

Uitgebreide projectdefinitie

Sommige van de extra attributen worden ontleed door de npm-website zoals repository , bugs of homepage en getoond in de infobox voor dit pakket

{
  "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
  ]
}
Veld Beschrijving
hoofd Invoerscript voor dit pakket. Dit script wordt geretourneerd wanneer een gebruiker het pakket nodig heeft.
bewaarplaats Locatie en type van de openbare repository
bugs Bugtracker voor dit pakket (bijv. Github)
Startpagina Startpagina voor dit pakket of het algemene project
bestanden Lijst met bestanden en mappen die moeten worden gedownload wanneer een gebruiker een npm install <packagename>

Pakket verkennen. Json

Een package.json bestand, meestal aanwezig in de projectwortel, bevat metagegevens over uw app of module en de lijst met afhankelijkheden die vanaf npm moeten worden geïnstalleerd bij het uitvoeren van npm install .

Typ npm init in uw opdrachtprompt om een package.json te initialiseren.

Gebruik een package.json met standaardwaarden:

npm init --yes
# or
npm init -y

Gebruik een pakket om een pakket te installeren en op te slaan in package.json :

npm install {package name} --save

U kunt ook de steno-notatie gebruiken:

 npm i -S {package name}

NPM-aliassen -S tot --save en -D tot --save-dev om respectievelijk te besparen op uw productie- of ontwikkelingsafhankelijkheid.

Het pakket verschijnt in uw afhankelijkheden; als u --save-dev plaats van --save , verschijnt het pakket in uw devDependencies.

Belangrijke eigenschappen van 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"
  ]
}

Informatie over enkele belangrijke eigenschappen:

name

De unieke naam van uw pakket en zou in kleine letters moeten zijn. Deze eigenschap is vereist en uw pakket kan niet zonder deze worden geïnstalleerd.

  1. De naam moet kleiner zijn dan of gelijk zijn aan 214 tekens.
  2. De naam mag niet beginnen met een punt of een onderstrepingsteken.
  3. Nieuwe pakketten mogen geen hoofdletters bevatten.
version

De versie van het pakket wordt gespecificeerd door Semantic Versioning (semver). Die ervan uitgaat dat een versienummer wordt geschreven als MAJOR.MINOR.PATCH en u verhoogt de:

  1. GROTE versie wanneer u incompatibele API-wijzigingen aanbrengt
  2. MINOR versie wanneer u functionaliteit toevoegt op een achterwaarts compatibele manier
  3. PATCH-versie wanneer u achterwaarts compatibele bugfixes maakt
description

De beschrijving van het project. Probeer het kort en bondig te houden.

author

De auteur van dit pakket.

bin

Een object dat wordt gebruikt om binaire scripts uit uw pakket bloot te leggen. Het object veronderstelt dat de sleutel de naam van het binaire script is en de waarde een relatief pad naar het script.

Deze eigenschap wordt gebruikt door pakketten die een CLI (opdrachtregelinterface) bevatten.

script

Een object dat aanvullende npm-opdrachten blootstelt. Het object gaat ervan uit dat de sleutel de opdracht npm is en de waarde het scriptpad. Deze scripts kunnen worden uitgevoerd wanneer u npm run {command name} of npm run-script {command name} .

Pakketten die een opdrachtregelinterface bevatten en lokaal worden geïnstalleerd, kunnen zonder relatief pad worden opgeroepen. Dus in plaats van ./node-modules/.bin/mocha aan te roepen, ./node-modules/.bin/mocha u ook direct mocha bellen.

main

Het belangrijkste toegangspunt tot uw pakket. Wanneer aanroep require('{module name}') in het knooppunt, is dit het werkelijke bestand dat vereist is.

Het wordt ten zeerste aangeraden dat het vereisen van het hoofdbestand geen bijwerkingen veroorzaakt. Als u bijvoorbeeld het hoofdbestand vereist, mag u geen HTTP-server opstarten of verbinding maken met een database. In plaats daarvan moet u zoiets als exports.init = function () {...} in uw hoofdscript.

keywords

Een reeks trefwoorden die uw pakket beschrijven. Hiermee kunnen mensen uw pakket vinden.

devDependencies

Dit zijn de afhankelijkheden die alleen zijn bedoeld voor het ontwikkelen en testen van uw module. De afhankelijkheden worden automatisch geïnstalleerd, tenzij de variabele NODE_ENV=production is ingesteld. Als dit het geval is, kunt u deze pakketten nog steeds gebruiken met npm install --dev

peerDependencies

Als u deze module gebruikt, vermeldt peerDependencies de modules die u naast deze moet installeren. moment-timezone moet bijvoorbeeld naast moment worden geïnstalleerd omdat het een plug-in voor moment is, zelfs als het niet direct require("moment") .

preferGlobal

Een eigenschap die aangeeft dat deze pagina bij voorkeur wereldwijd wordt geïnstalleerd met behulp van npm install -g {module-name} . Deze eigenschap wordt gebruikt door pakketten die een CLI (opdrachtregelinterface) bevatten.

In alle andere situaties mag u deze eigenschap NIET gebruiken.

publishConfig

De publishConfig is een object met configuratiewaarden die zullen worden gebruikt voor publicatiemodules. De ingestelde configuratiewaarden hebben voorrang op uw standaard npm-configuratie.

Het meest voorkomende gebruik van publishConfig is om uw pakket te publiceren naar een privé npm-register, zodat u nog steeds de voordelen van npm hebt, maar voor privépakketten. Dit wordt gedaan door eenvoudig de URL van uw privé-npm in te stellen als waarde voor de registersleutel.

files

Dit is een reeks van alle bestanden die in het gepubliceerde pakket moeten worden opgenomen. Een bestandspad of mappad kan worden gebruikt. Alle inhoud van een mappad wordt opgenomen. Dit vermindert de totale omvang van uw pakket door alleen de juiste te distribueren bestanden op te nemen. Dit veld werkt in combinatie met een .npmignore .

Bron



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow