Node.js
package.json
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 exempel0.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ängliga0.1.4
, till exempel0.1.4
, men kommer inte att installera en modul med högre major eller minor version, t.ex.0.2.0
eller1.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
elleruser/project#v1.0.0
- url :
git://gitlab.com/user/project.git
ellergit://gitlab.com/user/project.git#develop
- GitHub :
- 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.
- Namnet måste vara mindre än eller lika med 214 tecken.
- Namnet kan inte börja med en prick eller en understruk.
- 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:
- MAJOR version när du gör inkompatibla API-ändringar
- MINOR version när du lägger till funktionalitet på ett bakåtkompatibelt sätt
- 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
.