Node - package.json: Skillnad mellan sidversioner

Från Webbling
Hoppa till: navigering, sök
m (PGJ flyttade sidan Node och package.json till Node, npm och package.json utan att lämna en omdirigering)
Ingen redigeringssammanfattning
Rad 1: Rad 1:
För att lättare kunna paketera Node-program kan man skapa en standardfil som innehåller information om applikationen. Detta är filen <code>package.json</code>.
För att lättare kunna hantera Node-program kan man skapa en standardfil som innehåller information om applikationen. Detta är filen <code>package.json</code>. Informationen i denna fil tjänar även som grund om man vill paketera sitt eget program som ett 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 http://browsenpm.org/package.json] som interaktivt visar upp vad som kan ingå i en <code>package.json</code>-filen.)
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 http://browsenpm.org/package.json] som interaktivt visar upp vad som kan ingå i en <code>package.json</code>-filen.)


== Att skapa en <code>package.json</code> ==
== Att skapa en <code>package.json</code> ==
Rad 49: Rad 49:


==== <code>private</code> ====
==== <code>private</code> ====
<code>private</code> anger om detta är ett paket som ska delas till andra eller ej. Om det är satt till <code>false</code> 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.
<code>private</code> anger om detta är ett paket som ska delas till andra eller ej. Om det är satt till <code>false</code> 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 ===
=== Ytterligare metadata ===
Rad 70: Rad 70:


=== Custom NPM-kommandon ===
=== Custom NPM-kommandon ===
Med värdet <code>script</code> kan man ange en lista över kommandon som ska kunna köras av NPM. Dessa startas genom att man kör:
Med värdet <code>script</code> kan man ange en lista över kommandon som ska kunna köras av npm. Dessa startas genom att man kör:


<code>npm run ''<kommando>''</code>
<code>npm run ''<kommando>''</code>

Versionen från 5 januari 2016 kl. 14.02

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 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-filen.)

Att skapa en package.json

Om du behöver skapa en package.json 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 som package.json filen beskriver. Detta kan antingen vara en applikation, ett bibliotek eller liknande. Detta är metadata och de påminner om hur man hanterar metadata inom HTML:s head-element.

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, i små bokstäver).

version

Därefter följer version, som förstås anger vilken version denna fil handlar om. Detta ska anges med tre tal, åtskilda med punkter. De tre talen är:

  1. Större version. API:et har ändrats så det inte är bakåtkompatibelt
  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 huvudprogrammeraren för paketet genom att ange author. Här anger man namn namnet följt av mailadressen, 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 över 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 det 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 ge 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 lodash med den senaste versionen angiven i din package.json-fil. 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.

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.

En första serverapplikation med Node