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

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 npmnpmjs.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:

  1. patch release: npm version patch => 1.2.4
  2. minor release: npm version minor => 1.3.0
  3. 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:

  1. Ställ in den private egenskapen till true för att förhindra oavsiktlig publicering.
  2. 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

Mer om det

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.

  1. CD till en beroende-katalog (ex: cd ../my-dep )
  2. npm link
  3. CD in i projektet som kommer att använda beroendet
  4. npm link my-dep eller om npm link @namespace/my-dep

Steg för att länka ett globalt verktyg

  1. CD till projektkatalogen (ex: cd eslint-watch )
  2. npm link
  3. Använd verktyget
  4. 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å.



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