Node.js
npm
Sök…
Introduktion
Node Package Manager (npm) tillhandahåller följande två huvudfunktioner: Onlineförvar för node.js-paket / moduler som kan sökas på search.nodejs.org. Kommandoradsverktyg för att installera Node.js-paket, göra versionhantering och beroendehantering av Node.js-paket.
Syntax
- npm <kommando> där <kommando> är en av:
- Lägg till användare
- Lägg till användare
- apihelp
- författare
- bin
- buggar
- c
- cache
- komplettering
- config
- ddp
- borttagningsfrekvens
- OGILLA
- docs
- redigera
- utforska
- faq
- hitta
- Find-bedragna
- skaffa sig
- hjälp
- Hjälp-search
- Hem
- jag
- Installera
- info
- i det
- isntall
- frågor
- la
- länk
- lista
- ll
- ln
- logga in
- ls
- föråldrad
- ägare
- packa
- prefix
- beskära
- publicera
- r
- rb
- återuppbygga
- ta bort
- repa
- omstart
- rm
- rot
- run-script
- s
- se
- Sök
- uppsättning
- visa
- inplastning
- stjärna
- stjärnor
- Start
- sluta
- submodul
- märka
- testa
- tst
- fn
- avinstallera
- ta bort länken
- Avpublicera
- Ta bort stjärnmärkning
- upp
- uppdatering
- v
- version
- se
- vem är jag
parametrar
Parameter | Exempel |
---|---|
tillgång | npm publish --access=public |
bin | npm bin -g |
redigera | npm edit connect |
hjälp | npm help init |
i det | npm init |
Installera | npm install |
länk | npm link |
beskära | npm prune |
publicera | npm publish ./ |
omstart | npm restart |
Start | npm start |
sluta | npm start |
uppdatering | npm update |
version | npm version |
Installera paket
Introduktion
Paket är en term som används av npm för att beteckna verktyg som utvecklare kan använda för sina projekt. Detta inkluderar allt från bibliotek och ramverk som jQuery och AngularJS till uppdragslöpare som Gulp.js. Paketen kommer i en mapp som vanligtvis kallas node_modules
, som också kommer att innehålla en package.json
fil. Denna fil innehåller information om alla paket inklusive eventuella beroenden, som är ytterligare moduler som behövs för att använda ett visst paket.
Npm använder kommandoraden för att både installera och hantera paket, så användare som försöker använda npm bör vara bekanta med grundläggande kommandon på sitt operativsystem, dvs: korsa kataloger samt kunna se innehållet i kataloger.
Installera NPM
Observera att för att installera paket måste du ha NPM installerat.
Det rekommenderade sättet att installera NPM är att använda en av installationsprogrammen från nedladdningssidan för Node.js. Du kan kontrollera om du redan har node.js installerat genom att köra antingen npm -v
eller npm version
.
När du har installerat NPM via Node.js-installationsprogrammet, se till att det finns uppdateringar. Detta beror på att NPM uppdateras oftare än Node.js-installationsprogrammet. För att leta efter uppdateringar kör följande kommando:
npm install npm@latest -g
Hur man installerar paket
För att installera ett eller flera paket använder du följande:
npm install <package-name>
# or
npm i <package-name>...
# e.g. to install lodash and express
npm install lodash express
Obs : Detta kommer att installera paketet i den katalog som kommandoraden för närvarande är i, därför är det viktigt att kontrollera om rätt katalog har valts
Om du redan har en package.json
fil i din nuvarande arbetskatalog och beroenden definieras i den, kommer npm install
automatiskt att lösa och installera alla beroenden som listas i filen. Du kan också använda den korta versionen av npm install
som är: npm i
Om du vill installera en specifik version av ett paket använder du:
npm install <name>@<version>
# e.g. to install version 4.11.1 of the package lodash
npm install [email protected]
Om du vill installera en version som matchar ett specifikt versionintervall, använd:
npm install <name>@<version range>
# e.g. to install a version which matches "version >= 4.10.1" and "version < 4.11.1"
# of the package lodash
npm install lodash@">=4.10.1 <4.11.1"
Om du vill installera den senaste versionen använder du:
npm install <name>@latest
Ovanstående kommandon söker efter paket i det centrala npm
på npmjs.com . Om du inte vill installera från npm
registret npm
andra alternativ, till exempel:
# packages distributed as a tarball
npm install <tarball file>
npm install <tarball url>
# packages available locally
npm install <local path>
# packages available as a git repository
npm install <git remote url>
# packages available on GitHub
npm install <username>/<repository>
# packages available as gist (need a package.json)
npm install gist:<gist-id>
# packages from a specific repository
npm install --registry=http://myreg.mycompany.com <package name>
# packages from a related group of packages
# See npm scope
npm install @<scope>/<name>(@<version>)
# Scoping is useful for separating private packages hosted on private registry from
# public ones by setting registry for specific scope
npm config set @mycompany:registry http://myreg.mycompany.com
npm install @mycompany/<package name>
Vanligtvis kommer moduler att installeras lokalt i en mapp som heter node_modules
, som kan hittas i din nuvarande arbetskatalog. Detta är den katalog som require()
kommer att använda för att ladda moduler för att göra dem tillgängliga för dig.
Om du redan har skapat en package.json
fil kan du använda --save
( --save
-S
) eller en av dess varianter för att automatiskt lägga till det installerade paketet till ditt package.json
som ett beroende. Om någon annan installerar ditt paket npm
automatiskt beroenden från package.json
filen och installerar de listade versionerna. Observera att du fortfarande kan lägga till och hantera dina beroenden genom att redigera filen senare, så det är vanligtvis en bra idé att hålla reda på beroenden, till exempel med:
npm install --save <name> # Install dependencies
# or
npm install -S <name> # shortcut version --save
# or
npm i -S <name>
Följ följande kommando för att installera paket och spara dem bara om de behövs för utveckling, inte för att köra dem, inte om de behövs för att programmet ska köras:
npm install --save-dev <name> # Install dependencies for development purposes
# or
npm install -D <name> # shortcut version --save-dev
# or
npm i -D <name>
Installera beroenden
Vissa moduler tillhandahåller inte bara ett bibliotek som du kan använda, utan de ger också en eller flera binärer som är avsedda att användas via kommandoraden. Även om du fortfarande kan installera dessa paket lokalt föredras det ofta att installera dem globalt så att kommandoradsverktygen kan aktiveras. I så fall npm
automatiskt till lämpliga banor (t.ex. /usr/local/bin/<name>
) så att de kan användas från kommandoraden. För att installera ett paket globalt använder du:
npm install --global <name>
# or
npm install -g <name>
# or
npm i -g <name>
# e.g. to install the grunt command line tool
npm install -g grunt-cli
Om du vill se en lista över alla installerade paket och tillhörande versioner i det aktuella arbetsområdet, använd:
npm list
npm list <name>
Lägga till ett valfritt namnargument kan kontrollera versionen av ett specifikt paket.
Obs: Om du stöter på behörighetsproblem när du försöker installera en npm-modul globalt, motstå frestelsen att utfärda en sudo npm install -g ...
att lösa problemet. Det är farligt att ge skript från tredje part att köra på ditt system med förhöjda privilegier. Tillståndsproblemet kan betyda att du har ett problem med hur npm
själv installerades. Om du är intresserad av att installera Node i användarmiljöer med sandlådor kanske du vill prova att använda nvm .
Om du har byggverktyg eller andra utvecklingsberoenden (t.ex. Grunt) kanske du inte vill ha dem med i den applikation du distribuerar. Om så är fallet, vill du ha det som ett utvecklingsberoende, som är listat i package.json
under devDependencies
. För att installera ett paket som enbart utvecklingsberoende använder du - --save-dev
(eller -D
).
npm install --save-dev <name> // Install development dependencies which is not included in production
# or
npm install -D <name>
Du kommer att se att paketet sedan till devDependencies
i din package.json
.
För att installera beroenden för ett nedladdat / klonat node.js-projekt kan du helt enkelt använda
npm install
# or
npm i
npm läser automatiskt beroenden från package.json
och installerar dem.
NPM bakom en proxyserver
Om din internetåtkomst sker via en proxyserver kanske du måste ändra npm-installationskommandon som har åtkomst till fjärrlagringsplatser. npm använder en konfigurationsfil som kan uppdateras via kommandoraden:
npm config set
Du kan hitta dina proxyinställningar från din webbläsares inställningspanel. När du har fått proxyinställningarna (server-URL, port, användarnamn och lösenord); måste du konfigurera dina npm-konfigurationer enligt följande.
$ npm config set proxy http://<username>:<password>@<proxy-server-url>:<port>
$ npm config set https-proxy http://<username>:<password>@<proxy-server-url>:<port>
username
, password
, port
fält är valfria. När du har ställt in dessa skulle din npm install
, npm i -g
etc. fungera ordentligt.
Omfång och förvar
# Set the repository for the scope "myscope"
npm config set @myscope:registry http://registry.corporation.com
# Login at a repository and associate it with the scope "myscope"
npm adduser --registry=http://registry.corporation.com --scope=@myscope
# Install a package "mylib" from the scope "myscope"
npm install @myscope/mylib
Om namnet på ditt eget paket börjar med @myscope
och omfånget "myscope" är associerat med ett annat arkiv, kommer npm publish
att ladda upp ditt paket till det arkivet istället.
Du kan också fortsätta dessa inställningar i en .npmrc
fil:
@myscope:registry=http://registry.corporation.com
//registry.corporation.com/:_authToken=xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxx
Detta är användbart när du automatiserar byggandet på en CI-serverfe
Avinstallera paket
För att avinstallera ett eller flera lokalt installerade paket använder du:
npm uninstall <package name>
Avinstallationskommandot för npm har fem alias som också kan användas:
npm remove <package name>
npm rm <package name>
npm r <package name>
npm unlink <package name>
npm un <package name>
Om du vill ta bort paketet från package.json
filen som en del av avinstallationen använder du - - --save
flaggan (kort: -S
):
npm uninstall --save <package name>
npm uninstall -S <package name>
För ett utvecklingsberoende, använd --save-dev
(korthet: -D
):
npm uninstall --save-dev <package name>
npm uninstall -D <package name>
För ett valfritt beroende, använd --save-optional
(korthand: -O
):
npm uninstall --save-optional <package name>
npm uninstall -O <package name>
För paket som installeras globalt använder du --global
flaggan (kortfattad: -g
):
npm uninstall -g <package name>
Grundläggande semantisk versionering
Innan du publicerar ett paket måste du versionera det. npm stöder semantisk versionering , det betyder att det finns patch-, mindre och större versioner.
Om ditt paket till exempel är i version 1.2.3 för att ändra version måste du:
- patch release:
npm version patch
=> 1.2.4 - minor release:
npm version minor
=> 1.3.0 - major release:
npm version major
=> 2.0.0
Du kan också ange en version direkt med:
npm version 3.1.4
=> 3.1.4
När du ställer in en paketversion med hjälp av ett av npm-kommandona ovan, kommer npm att ändra versionfältet för paket.json-filen, begå den och också skapa en ny Git-tagg med versionen förinställd med en "v", som om du har utfärdat kommandot:
git tag v3.1.4
Till skillnad från andra pakethanterare som Bower, litar inte npm-registret på att Git-taggar skapas för varje version. Men om du gillar att använda taggar, bör du komma ihåg att trycka på den nyskapade taggen efter att ha stött på paketversionen:
git push origin master
(för att driva ändringen till package.json)
git push origin v3.1.4
(för att trycka på den nya taggen)
Eller så kan du göra detta på ett sätt med:
git push origin master --tags
Ställa in en paketkonfiguration
Node.js-paketkonfigurationer finns i en fil som heter package.json
som du hittar i roten till varje projekt. Du kan ställa in en helt ny konfigurationsfil genom att ringa:
npm init
Det kommer att försöka läsa den aktuella arbetskatalogen för Git-lagringsinformation (om den finns) och miljövariabler för att försöka fylla i några av platshållarens värden för dig. Annars ger det en inmatningsdialogruta för de grundläggande alternativen.
Om du vill skapa ett package.json
med standardvärden, använd:
npm init --yes
# or
npm init -y
Om du skapar ett package.json
för ett projekt som du inte kommer att publicera som ett npm-paket (dvs. enbart för att avrunda dina beroenden), kan du förmedla denna avsikt i din package.json
fil:
- Ställ in den
private
egenskapen till true för att förhindra oavsiktlig publicering. - Eventuellt ställa in
license
egendom till "unlicensed" att förneka andra rätten att använda ditt paket.
För att installera ett paket och spara det automatiskt i ditt package.json
, använd:
npm install --save <package>
Paketet och tillhörande metadata (t.ex. paketversionen) visas i dina beroenden. Om du sparar if som ett utvecklingsberoende (med - --save-dev
) kommer paketet istället att visas i dina devDependencies
.
Med detta bare-bone package.json
kommer du att stöta på varningsmeddelanden när du installerar eller uppgraderar paket, berättar att du saknar en beskrivning och arkivet. Även om det är säkert att ignorera dessa meddelanden kan du bli av med dem genom att öppna package.json i valfri textredigerare och lägga till följande rader i JSON-objektet:
[...]
"description": "No description",
"repository": {
"private": true
},
[...]
Publicera ett paket
Kontrollera först att du har konfigurerat ditt paket (som sagt i Ställa in en paketkonfiguration ). Sedan måste du vara inloggad på npmjs.
Om du redan har en npm-användare
npm login
Om du inte har en användare
npm adduser
För att kontrollera att din användare är registrerad i den aktuella klienten
npm config ls
Efter det, när ditt paket är redo att publiceras, använd det
npm publish
Och du är klar.
Om du behöver publicera en ny version, se till att du uppdaterar din paketversion, som anges i Basic semantisk versionering . Annars npm
inte publicera paketet.
{
name: "package-name",
version: "1.0.4"
}
Kör manus
Du kan definiera skript i ditt package.json
, till exempel:
{
"name": "your-package",
"version": "1.0.0",
"description": "",
"main": "index.js",
"author": "",
"license": "ISC",
"dependencies": {},
"devDependencies": {},
"scripts": {
"echo": "echo hello!"
}
}
För att köra echo
, kör npm run echo
från kommandoraden. Godtyckliga skript, som echo
ovan, måste köras med npm run <script name>
. npm har också ett antal officiella skript som det körs i vissa stadier i paketets livslängd (som preinstall
). Se här för hela översikten över hur npm hanterar skriptfält.
npm-skript används oftast för saker som att starta en server, bygga projektet och köra tester. Här är ett mer realistiskt exempel:
"scripts": {
"test": "mocha tests",
"start": "pm2 start index.js"
}
I scripts
fungerar kommandoradsprogram som mocha
när de installeras antingen globalt eller lokalt. Om kommandoradsposten inte finns i system PATH kommer npm också att kontrollera dina lokalt installerade paket.
Om dina skript blir väldigt långa kan de delas upp i delar, så här:
"scripts": {
"very-complex-command": "npm run chain-1 && npm run chain-2",
"chain-1": "webpack",
"chain-2": "node app.js"
}
Ta bort främmande paket
Kör följande kommando för att ta bort främmande paket (paket som är installerade men inte i beroende-lista):
npm prune
För att ta bort alla dev
paket lägg till - --production
:
npm prune --production
Visar för närvarande installerade paket
Använd för att skapa en lista (trädvy) med för närvarande installerade paket
npm list
ls, la och II är alias för kommandolistan. la och ll-kommandon visar utökad information som beskrivning och arkiv.
alternativ
Svarformatet kan ändras genom att välja alternativ.
npm list --json
- json - Visar information i json-format
- lång - Visar utökad information
- parseable - visar lista som kan delas istället för träd
- global - Visar globalt installerade paket
- djup - maximalt visningsdjup för beroende träd
- dev / utveckling - Visar beroende av beroende
- produkt / produktion - Visar beroenden
Om du vill kan du också gå till paketets hemsida.
npm home <package name>
Uppdatering av npm och paket
Eftersom npm själv är en Node.js-modul, kan den uppdateras med sig själv.
Om OS är Windows måste köra kommandotolken som Admin
npm install -g npm@latest
Om du vill leta efter uppdaterade versioner kan du göra:
npm outdated
För att uppdatera ett specifikt paket:
npm update <package name>
Detta kommer att uppdatera paketet till den senaste versionen i enlighet med begränsningarna i package.json
Om du också vill låsa den uppdaterade versionen i package.json:
npm update <package name> --save
Låsa moduler till specifika versioner
Som standard installerar npm den senaste tillgängliga versionen av moduler enligt varje beroendes semantiska version . Detta kan vara problematiskt om en modulförfattare inte följer semver och inför brottförändringar i en moduluppdatering, till exempel.
För att låsa upp varje beroendeversion (och versionerna av deras beroenden osv.) Till den specifika versionen som installeras lokalt i mappen node_modules
, använd
npm shrinkwrap
Detta skapar sedan en npm-shrinkwrap.json
tillsammans med ditt package.json
som visar de specifika versionerna av beroende.
Ställa in för globalt installerade paket
Du kan använda npm install -g
att installera ett paket "globalt." Detta görs vanligtvis för att installera en körbar version som du kan lägga till i din sökväg att köra. Till exempel:
npm install -g gulp-cli
Om du uppdaterar din sökväg kan du ringa gulp
direkt.
På många operativsystem npm install -g
skriva till en katalog som din användare kanske inte kan skriva till, till exempel /usr/bin
. Du bör inte använda sudo npm install
i det här fallet eftersom det finns en möjlig säkerhetsrisk för att köra godtyckliga skript med sudo
och rotanvändaren kan skapa kataloger i ditt hem som du inte kan skriva till vilket gör framtida installationer svårare.
Du kan berätta för npm
var du ska installera globala moduler via din konfigurationsfil, ~/.npmrc
. Detta kallas prefix
som du kan visa med npm prefix
.
prefix=~/.npm-global-modules
Detta kommer att använda prefixet när du kör npm install -g
. Du kan också använda npm install --prefix ~/.npm-global-modules
att ställa in prefixet när du installerar. Om prefixet är samma som din konfiguration behöver du inte använda -g
.
För att kunna använda den globalt installerade modulen måste den vara på din väg:
export PATH=$PATH:~/.npm-global-modules/bin
När du kör npm install -g gulp-cli
du använda gulp
.
Obs: När du npm install
(utan -g
) kommer prefixet att vara katalogen med package.json
eller den aktuella katalogen om ingen finns i hierarkin. Detta skapar också en node_modules/.bin
som har körbara filer. Om du vill använda ett körbart program som är specifikt för ett projekt är det inte nödvändigt att använda npm install -g
. Du kan använda den i node_modules/.bin
.
Länka projekt för snabbare felsökning och utveckling
Att bygga projektberoende kan ibland vara en tråkig uppgift. I stället för att publicera en paketversion till NPM och installera beroendet för att testa ändringarna, använd npm link
. npm link
skapar en symlink så att den senaste koden kan testas i en lokal miljö. Detta underlättar att testa globala verktyg och projektberoende genom att tillåta den senaste kodkörningen innan du publicerar en publicerad version.
Hjälp text
NAME
npm-link - Symlink a package folder
SYNOPSIS
npm link (in package dir)
npm link [<@scope>/]<pkg>[@<version>]
alias: npm ln
Steg för att länka projektberoende
När du skapar beroende-länken, observera att paketnamnet är det som kommer att hänvisas till i överordnade projekt.
- CD till en beroende-katalog (ex:
cd ../my-dep
) -
npm link
- CD in i projektet som kommer att använda beroendet
-
npm link my-dep
eller omnpm link @namespace/my-dep
Steg för att länka ett globalt verktyg
- CD till projektkatalogen (ex:
cd eslint-watch
) -
npm link
- Använd verktyget
-
esw --quiet
Problem som kan uppstå
Att länka projekt kan ibland orsaka problem om beroendet eller det globala verktyget redan är installerat. npm uninstall (-g) <pkg>
och kör sedan npm link
löser normalt alla problem som kan uppstå.