Node - package.json

Från Webbling
Version från den 31 oktober 2020 kl. 14.23 av PGJ (diskussion | bidrag)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till: navigering, sök

För att lättare kunna hantera Node-program kan man skapa en standardfil som innehåller information om applikationen. Detta är filen package.json. Informationen i denna fil tjänar även som grund om man vill paketera sitt eget program som ett npm-paket.

Filen innehåller värden som anger saker som namn, version, beskrivning, programmerare/författare samt vilka npm-moduler som krävs för att köra paketet. Dessa saker anges som en JSON-struktur i filen. Vi ska gå igenom några av de saker som man kan ange i denna fil. (Prova gärna http://browsenpm.org/package.json som interaktivt visar upp vad som kan ingå i en package.json-fil.)

Att skapa en package.json-fil

Om du behöver skapa en package.json-fil ifrån scratch så gör du det enklast via npm. Kör följande kommando:

npm init

npm kommer att ställa en massa frågor. Svaren på dessa kommer att användas till grundinställningarna för din package.json-fil.

En minimal package.json

En minimal package.json som skapats av ”Express Generator” ser ut ungefär så här:

{
  "name": "NodeTest",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {
    "body-parser": "~1.13.2",
    "cookie-parser": "~1.3.5",
    "debug": "~2.2.0",
    "express": "~4.13.1",
    "jade": "~1.11.0",
    "morgan": "~1.6.1",
    "serve-favicon": "~2.3.0"
  }
}

Låt oss gå igenom vad filen innehåller…

Paketinformation och metadata

De första värdena anger information om paketet såsom package.json filen beskriver. Detta kan antingen vara en applikation, ett bibliotek eller liknande. Detta är metadata, dvs data som beskriver den data som finns med i paketet.

Följande sätts här:

name

Först ut har vi name. Detta värde bestämmer vilket namn vår applikation ska ha. Detta är en obligatorisk parameter och namnet ska anges gement (dvs, med små bokstäver).

version

Därefter följer version, som anger vilken version av paketet denna fil handlar om.

Versionsinformationen ska anges med tre tal, åtskilda med punkter. De tre talen är:

  1. Större version. API:et har ändrats och det är inte längre bakåtkompatibelt med äldre versioner
  2. Mindre version. Funktionalitet har lagts till, men det är bakåtkompatibelt.
  3. Patch. Små, bakåtkompatibla buggfixar.

private

private anger om detta är ett paket som ska delas till andra eller ej. Om det är satt till false kommer npm att tycka att det ska publiceras till allmänheten. I de flesta fall vill vi inte detta, speciellt inte så länge vi håller på och utvecklar koden.

Ytterligare metadata

Det finns även ett par till metainformationsvärden som kan vara av intresse. Dessa är:

description

description är en kort och koncis beskrivning av vad paketet är till för. Om du vill ha mer omfattande beskrivning, dokumentation, osv så passar det bättre i någon annan fil. Kanske en readme-fil eller liknande. Publicerar du ditt paket, kommer du säkert att vilja ha en separat fil eller webbsida som mer ingående beskriver ditt paket.

author

Vi kan även ange vem som är skapare och huvudsaklig utvecklare och som ansvarar för paketet. Det gör vi genom att ange author. Här anger man persones namn följt av dennes mailadress, t.ex.:

author: Patrik Grip-Jansson <pgj@gnulix.org>

contributors

Man kan även ange vilka som varit med och bidragit till koden. Det gör man med contributors. Denna består av en array med namn och mailadresser för alla medhjälpare. Så här kan den se ut:

contributors : [{ name : Nisse Motlut, email : nm@example.com}]

Custom NPM-kommandon

Med värdet script kan man ange en lista med custom kommandon som ska kunna köras av npm. Dessa startas genom att man kör:

npm run ''<kommando>''

I vårt fall skapas alltså kommandot start och när man exekverar detta så kommer Node att starta igång och köra vår applikation.

Beroenden (dependencies)

Sist i vår exempelfil följer en lista på de paket som behövs för att kunna köra vår applikation. För dessa värden anges först paketnamnet, därefter paketversionen.

Genom att ange en version, så kan man tala om vilken version av ett paket som man vet fungerar med ens applikation. Man kan visserligen fylla i detta själv. Men det brukar vara bättre att låta npm sköta det åt en. Det kan man göra genom att ange en extra flagga när man installerar ett paket. Så här kan det se ut om vi vill ange att vår applikation kräver Lodash:

npm install lodash --save

Ovanstående kommer att lägga till senaste versionen av lodash till din applikation. npm kommer även att lägga till en rad i package.json-filen. Den kommer att tala om att lodsh behövs samt vilken version som är rätt (detta sätts till den senaste versionen i vårt fall). Detta är det enklaste sättet att lägga till beroenden.

Ett bra urval

Det finns långt mycket mer man kan använda i sin package.json-fil. Men detta är ett bra urval som bör räcka till i de allra flesta fallen.

Titta gärna runt på package.json i några olika paket så att du får en känsla för hur filen används i olika projekt.

Nästa aktivitet

Nu har vi fått en hel del mer på fötterna och vi ska skapa en lite mer omfattande Node-applikation.

Node - en första serverapplikation