Sök…


Anmärkningar

Du kan skapa package.json med

npm init

som kommer att fråga dig om grundläggande fakta om dina projekt, inklusive licensidentifierare .

Grundläggande 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"]
}
Fält Beskrivning
namn ett obligatoriskt fält för ett paket att installera. Behöver vara små, enda ord utan mellanrum. (Streck och understreck tillåtna)
version ett obligatoriskt fält för paketversionen med semantisk versionering .
beskrivning en kort beskrivning av projektet
författare anger pakets författare
bidrags ett antal objekt, ett för varje bidragsgivare
nyckelord en rad strängar, detta hjälper människor att hitta ditt paket

beroenden

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

  • exakt : 0.1.0 kommer att installera den specifika versionen av modulen.
  • nyaste mindre version : ^0.1.0 kommer att installera den senaste mindre versionen, till exempel 0.2.0 , men kommer inte att installera en modul med en högre större version, t.ex. 1.0.0
  • nyaste patch : 0.1.x eller ~0.1.0 installerar den senaste tillgängliga 0.1.4 , till exempel 0.1.4 , men kommer inte att installera en modul med högre major eller minor version, t.ex. 0.2.0 eller 1.0.0 .
  • jokertecken : * installerar den senaste versionen av modulen.
  • git repository : Följande kommer att installera en tarball från master grenen för en git repo. En #sha , #tag eller #branch kan också tillhandahållas:
    • GitHub : user/project eller user/project#v1.0.0
    • url : git://gitlab.com/user/project.git eller git://gitlab.com/user/project.git#develop
  • lokal sökväg : file:../lib/project

När du har lagt till dem i din package.json, använd kommandot npm install i din projektkatalog i terminalen.

devDependencies

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

För beroenden som endast krävs för utveckling, som att testa stylingproxy ext. Dessa dev-beroende kommer inte att installeras när du kör "npm installation" i produktionsläge.

skript

Du kan definiera skript som kan köras eller utlöses före eller efter ett annat skript.

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

I det här fallet kan du köra skriptet genom att köra någon av dessa kommandon:

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

Fördefinierade skript

Skriptnamn Beskrivning
prepublish Kör innan paketet publiceras.
publicera, publicera Kör efter att paketet har publicerats.
preinstall Kör innan paketet är installerat.
installera, efterinstallera Kör efter att paketet har installerats.
förinstallera, avinstallera Kör innan paketet avinstalleras.
postuninstall Kör efter att paketet har avinstallerats.
preversion, version Kör innan du stöter på paketversionen.
postversion Kör efter att ha stött på paketversionen.
pretest, test, posttest Kör av npm test
prestop, stop, poststop Kör av npm stop kommandot
prestart, start, poststart Kör med npm start
förstart, omstart, postrestart Kör med npm restart

Användardefinierade skript

Du kan också definiera dina egna skript på samma sätt som du gör med de fördefinierade skript:

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

I det här fallet kan du köra skriptet genom att köra någon av dessa kommandon:

$ npm run-script ci
$ npm run ci

Användardefinierade skript också stöden pre och post skript, såsom visas i exemplet ovan.

Utökad projektdefinition

Vissa av de ytterligare attributen analyseras av npm-webbplatsen som repository , bugs eller homepage och visas i infoboxen för dessa paket

{
  "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
  ]
}
Fält Beskrivning
huvud Ange skript för detta paket. Detta skript returneras när en användare kräver paketet.
förvaret Plats och typ av det offentliga förvaret
buggar Bugtracker för detta paket (t.ex. github)
hemsida Hemsida för detta paket eller det allmänna projektet
filer Lista över filer och mappar som ska laddas ner när en användare utför en npm install <packagename>

Utforska paket.json

En package.json fil, som vanligtvis finns i projektroten, innehåller metadata om din app eller modul samt en lista över beroenden som ska installeras från npm när du kör npm install .

För att initiera en package.json skriver du npm init i kommandotolken.

För att skapa ett package.json med standardvärden använder du:

npm init --yes
# or
npm init -y

För att installera ett paket och spara det på package.json använd:

npm install {package name} --save

Du kan också använda den korta notationen:

 npm i -S {package name}

NPM alias -S till - --save och -D till - --save-dev att spara i dina produktions- eller utvecklingsberoende.

Paketet visas i dina beroenden; Om du använder - --save-dev istället för - --save , kommer paketet att visas i dina beroende.

Viktiga egenskaper hos 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"
  ]
}

Information om några viktiga egenskaper:

name

Det unika namnet på ditt paket och bör vara med små bokstäver. Den här egenskapen krävs och ditt paket kommer inte att installeras utan den.

  1. Namnet måste vara mindre än eller lika med 214 tecken.
  2. Namnet kan inte börja med en prick eller en understruk.
  3. Nya paket får inte ha stora bokstäver i namnet.
version

Versionen av paketet specificeras av Semantic Versioning (semver). Vilket antar att ett versionnummer skrivs som MAJOR.MINOR.PATCH och du ökar:

  1. MAJOR version när du gör inkompatibla API-ändringar
  2. MINOR version när du lägger till funktionalitet på ett bakåtkompatibelt sätt
  3. PATCH-version när du gör bakåtkompatibla bugfixar
description

Beskrivning av projektet. Försök att hålla det kort och kortfattat.

author

Författaren till detta paket.

bin

Ett objekt som används för att exponera binära skript från ditt paket. Objektet antar att nyckeln är namnet på det binära skriptet och värdet en relativ sökväg till skriptet.

Den här egenskapen används av paket som innehåller ett CLI (kommandoradsgränssnitt).

script

Ett objekt som exponerar ytterligare npm-kommandon. Objektet antar att nyckeln är kommandot npm och värdet är skriptvägen. Dessa skript kan köras när du kör npm run {command name} eller npm run-script {command name} .

Paket som innehåller ett kommandoradsgränssnitt och installeras lokalt kan kallas utan en relativ sökväg. Så istället för att ringa ./node-modules/.bin/mocha du direkt ringa mocha .

main

Huvudinträdet till ditt paket. När du require('{module name}') samtal require('{module name}') i nod är det den aktuella filen som krävs.

Det rekommenderas starkt att kräva huvudfilen inte genererar några sidoeffekter. Till exempel, att kräva huvudfilen bör inte starta en HTTP-server eller ansluta till en databas. Istället bör du skapa något som exports.init = function () {...} i ditt huvudskript.

keywords

En rad nyckelord som beskriver ditt paket. Dessa hjälper människor att hitta ditt paket.

devDependencies

Det här är beroenden som endast är avsedda för utveckling och testning av din modul. Beroenden installeras automatiskt om inte NODE_ENV=production har ställts in. Om så är fallet kan du fortfarande använda dessa paket med npm install --dev

peerDependencies

Om du använder den här modulen listar peerDependences de moduler du måste installera tillsammans med den här. Exempelvis måste moment-timezone installeras tillsammans med moment eftersom det är ett plugin för ögonblick, även om det inte require("moment") direkt require("moment") .

preferGlobal

En egenskap som indikerar att den här sidan föredrar att installeras globalt med npm install -g {module-name} . Den här egenskapen används av paket som innehåller ett CLI (kommandoradsgränssnitt).

I alla andra situationer bör du INTE använda den här egenskapen.

publishConfig

PublishConfig är ett objekt med konfigurationsvärden som kommer att användas för att publicera moduler. De inställda konfigurationsvärdena åsidosätter din standardnpm-konfiguration.

Den vanligaste användningen av publishConfig är att publicera ditt paket i ett privat npm-register så att du fortfarande har fördelarna med npm men för privata paket. Detta görs genom att helt enkelt ställa in din privata npm URL som värde för registernyckeln.

files

Detta är en matris med alla filer som ska inkluderas i det publicerade paketet. Antingen kan en filväg eller en mappväg användas. Allt innehåll i en mappväg kommer att inkluderas. Detta minskar den totala storleken på ditt paket genom att bara inkludera rätt filer som ska distribueras. Det här fältet fungerar tillsammans med en .npmignore .

Källa



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow