Läsare som du hjälper till att stödja MUO. När du gör ett köp med hjälp av länkar på vår webbplats kan vi tjäna en affiliate-provision. Läs mer.

npm-skript innehåller en uppsättning terminalkommandon som du kan använda för att automatisera uppgifter i ett JavaScript-projekt. De ger också ett konsekvent sätt att köra kommandon i olika miljöer.

Du kan ställa in npm-skript i en package.json-fil, köra dem på kommandoraden och använda en mängd alternativ för att konfigurera deras beteende.

Konfigurera npm-skript i filen package.json

Du definierar vanligtvis npm-skript i en package.json-fil, som finns i roten av ditt JavaScript-projekt. Detta är inte ett måste eftersom du kan köra skript från andra filer, men package.json gör det lättare att komma åt och hantera dina skript.

Observera att du måste ha npm och Node installerade i din utvecklingsmiljö för att följa med. Här är några användbara artiklar:

  • Hur installera Node.js och npm på Windows.
  • Hur installera Node.js och npm på Ubuntu.

För att ställa in ett npm-skript i package.json, följ stegen nedan:

instagram viewer
  1. Navigera till roten av ditt projekt.
  2. Kör npm init på terminalen. Kommandot kommer att ställa några frågor om ditt projekt. Svara på dem för att skapa en lämplig package.json-fil.
    npm init 
  3. Leta reda på skriptfältet i filen package.json. Här kan du lägga till namnet på ett skript och kommandot som det ska köras som nyckel/värdepar. Till exempel, skriptet nedan, som heter hello-world, skriver ut "Hello world" i terminalen när det körs.
    {
    "skript": {
    "Hej världen": "eko \\"Hej världen\\""
    }
    }

Här är några vanliga skript för JavaScript-projekt:

  • Start: Det här skriptet startar utvecklingsservern. Till exempel, i ett Node-projekt kan det kör servern med nodemon.
  • bygga: Genererar produktionskoden för din applikation och kan använda ett verktyg som webpack för att förminska och bunta koden.
  • testa: Det här skriptet kör de tester som definierats i ditt projekt. Det kan köra ett testramverk som Jest.
  • ludd: Ett lint-skript kör ett linting-verktyg som ESLint för att kontrollera koden för potentiella fel.
  • Kolla på: Det här skriptet övervakar källkoden för ändringar och kör sedan ett kommando. Det är användbart för att köra om tester eller bygga om programmet vid kodändring.
  • distribuera: Kör ett kommando som distribuerar programmet till den angivna miljön som produktion eller iscensättning.

För- och efterskript

npm stöder pre- och postscript. Förskript körs före ett specifikt skript medan postskript körs efteråt. Du kan skapa för- och postskript för vilket skript som helst, bara prefixet "pre" eller "post" till ditt skriptnamn.

Till exempel nedan är förtest- och posttest-skript som körs före respektive efter testskriptet.

{
"skript": {
"förtest": "npm run lint",
"testa": "skoj",
"eftertest": "npm kör bygg"
}
}

Kör npm-skript från package.json

När du har lagt till ett npm-skript till package.json kan du köra det med kommandot npmrun.

Här är syntaxen:

npm köra 

Till exempel, för att köra startskriptet som definierats tidigare, använd:

npm körstart

Du kan köra kommandot npmrun på egen hand för att få en lista över alla tillgängliga skript i ett projekt. Här är några exempel på utdata:

Skript tillgängliga i [email protected] via `npm run-script`:
Hej världen
echo "Hej världen"

Den listar namnet på skriptet och kommandot det körs.

Använda stenografikommandon för att köra inbyggda skript

npm stöder flera inbyggda skript som du kan köra med hjälp av stenografikommandon. Till exempel, för att köra ett npm-skript med namnet start, kan du använda npm start istället för npm run start.

Detta är bekvämare och snabbare än att skriva hela kommandot. Andra inbyggda skript du kan köra så här inkluderar "test", "stopp" och "starta om".

Kör flera npm-skript

Du kan köra flera npm-skript på två sätt:

  • Sekventiellt
  • Parallellt

Om du använder Linux eller något annat Unix-liknande system kan du använda standarden metoder för att köra flera kommandon samtidigt.

För att köra flera npm-skript sekventiellt använd &&, till exempel:

npm kör start && npm test

För att köra flera npm-skript parallellt använd &, till exempel:

npm kör server & npm kör klient

I icke-UNIX-miljöer kan du använda kommandot npm-run-all eller paketet npm samtidigt.

Använda npm-run-all:

npm-run-all --parallell serverklient

Använder samtidigt i package.json.

"skript": {
"dev": "samtidigt \\"npm kör server\\" \\"npm kör klient\\"",
}

Observera att du måste installera paketen npm-run-all och Concurrently innan du använder dem.

Felsökning av vanliga Npm-skriptfel

Nedan följer några vanliga fel som du kan stöta på när du kör npm-skript:

  • npm fel! manus saknas — Det här felet uppstår när du inte har definierat skriptet du försöker köra i filen package.json. Se till att du stavar skriptnamnet korrekt och att det är definierat i skriptfältet i filen package.json.
  • Åtkomst nekad — Det här felet uppstår när du inte har behörighet att köra ett skript så se till att du har rätt behörigheter.
  • Saknade beroenden — Det här felet uppstår när skriptet använder ett paket som inte är installerat. Använd ett verktyg som depcheck för att leta efter beroenden som saknas från package.json installera dem sedan med npm install.
  • Okänt kommando — Det här felet uppstår vanligtvis när du kör ett anpassat skript som ett inbyggt npm-kommando. Se till att du använder npm köra eller npm körskript när du kör anpassade skript.

Använda miljövariabler i npm-skript

Miljövariabler låter dig skicka information utan att hårdkoda den. För att använda miljövariabler i ett npm-skript kan du använda cross-env npm-paket. Det här verktyget hjälper dig att ställa in en miljövariabel i vilken miljö som helst.

Börja med att köra det här kommandot på terminalen för att installera det som ett dev-beroende:

npm jag sparar -D cross-env

Använd det sedan i ditt skript så här:

{
"skript": {
"bygga": "cross-env NODE_ENV=produktionswebbpaket"
}
}

Här ställer cross-env variabeln NODE_ENV till "produktion".

Skicka kommandoradsargument till skript

Du kan skicka kommandoradsargument till ett npm-skript med två bindestreck "--" efter skriptnamnet. Till exempel kör följande kommando testskriptet med bevakningsargumentet:

npm kör test -- --titta

Du kan också skicka ett kommandoradsargument till ett npm-skript så här:

npm kör min-port --PORT=3000

Öppna det sedan i skriptet enligt följande.

"skript": {
"min-port": "eko \\"Port: $npm_config_PORT\\""
}

På ett Windows-system, använd detta:

"skript": {
"min-port": "eko \\"Port: %npm_config_PORT%\\""
}

Skriptet ska skriva ut "Port: 3000" när du kör det.

Varför använda npm-skript?

Du kan lägga till skript till package.json, köra dem på kommandoraden, använda pre- och post-hooks och skicka radargument och miljövariabler till dem.

npm-skript är ett kraftfullt sätt att automatisera uppgifter i JavaScript-projekt. De kan förbättra ditt arbetsflöde och spara tid genom att ge dig konsekventa kommandon för att köra flera uppgifter.